Пару години не бях поглеждал Darp, а той за това време, оказва се, се е стабилизирал и активно се е развивал.
За тези, които не са запознати, Darp е готов приложен слой под формата на sidecar контейнери. Позволява на екипите да не пишат приложния слой, а да използват готови компоненти, като се заплаща с необходимост от обучение и малък overhead (5-10% cpu, 5-10 Mb памет и 5-10 ms latency за gRPC).
Реализира API:
- Service Invocation: Директни, защитени повиквания „service-to-service“ (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 доставчици