Пару років не дивився на Darp, а він за цей час, виявляється, стабілізувався й активно розвивався.

Для тих, хто не знайомий, 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-провайдерами