DARP

Пару лет не смотрел на Darp, а он за это время, оказывается, стабилизировался и активно развивался. Теперь в него даже добавили простой прокси для LLM.

Для тех, кто не знаком, Darp - это готовый прикладной слой в виде sidecar-контейнеров. Позволяет командам не писать прикладной слой, а использовать готовые компоненты, расплачиваясь необходимостью обучения и небольшим overhead’ом (5-10 % cpu, 5-10 Mb памяти и 5-10 ms latency на gRPC).

Реализует API:

  • Service Invocation: Прямые, защищённые вызовы «сервис-к-сервису» (HTTP/gRPC)
  • Publish & Subscribe Messaging: Асинхронные события между сервисами через брокеры (> 10 вариантов брокеров)
  • Workflow: Долгоживущие оркестрации и саги между микросервисами
  • State Management: Хранение/запрос key-value-состояния с поддержкой TTL и транзакций (> 20 вариантов хранилищ)
  • Bindings: Приём/отправка данных от внешних систем по событиям
  • Actors: Модель виртуальных акторов (активное объектное состояние)
  • Secrets Management: Безопасное получение секретов из внешних хранилищ
  • Configuration: Чтение и live-подписка на изменения конфигурации приложений
  • Distributed Lock: Взаимоисключительный доступ к ресурсам с lease-механизмом
  • Cryptography: Криптографические операции (KMS, подпись, шифрование) без раскрытия ключей
  • Jobs: Планирование и оркестрация фоновых/периодических задач
  • Workflow: Долгоживущие оркестрации и саги между микросервисами
  • State Management: Хранение/запрос key-value-состояния с поддержкой TTL и транзакций
  • Bindings: Приём/отправка данных от внешних систем по событиям
  • Actors: Модель виртуальных акторов (активное объектное состояние)
  • Secrets Management: Безопасное получение секретов из внешних хранилищ
  • Configuration: Чтение и live-подписка на изменения конфигурации приложений
  • Distributed Lock: Взаимоисключительный доступ к ресурсам с lease-механизмом
  • Cryptography: Криптографические операции (KMS, подпись, шифрование) без раскрытия ключей
  • Jobs: Планирование и оркестрация фоновых/периодических задач
  • Conversation: Абстракция prompt-based взаимодействия с LLM-провайдерами

I haven’t looked at #Darp for a couple of years, and it turns out it has stabilized and actively developed during that time. Now it even includes a simple proxy for LLM.

For those who are not familiar, #Darp is a ready-made application layer in the form of sidecar containers. It allows teams not to write the application layer but to use ready-made components, paying the price of necessary training and a small overhead (5-10% CPU, 5-10 MB memory, and 5-10 ms latency on gRPC).

It implements the API:

  • Service Invocation: Direct, secure service-to-service calls (HTTP/gRPC)
  • Publish & Subscribe Messaging: Asynchronous events between services through brokers (> 10 broker options)
  • Workflow: Long-lived orchestrations and sagas between microservices
  • State Management: Storage/request of key-value state with TTL and transaction support (> 20 storage options)
  • Bindings: Receiving/sending data from external systems by events
  • Actors: Virtual actors model (active object state)
  • Secrets Management: Secure retrieval of secrets from external stores
  • Configuration: Reading and live subscription to application configuration changes
  • Distributed Lock: Mutual exclusion access to resources with lease mechanism
  • Cryptography: Cryptographic operations (KMS, signing, encryption) without key disclosure
  • Jobs: Scheduling and orchestration of background/periodic tasks
  • Conversation: Abstraction of prompt-based interaction with LLM providers