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