Пару років не дивився на 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-провайдерами