module
0.0.0-20240613140459-f1942a7f1313
Repository: https://github.com/timickb/narration-engine.git
Documentation: pkg.go.dev
# README
Narration Engine
Сервис для выполнения бизнес-сценариев, задействующих несколько сервисов, с помощью конечного автомата. Сценарии описываются в формате Plant UML State Diagram, путь к директории с ними указывается в конфиге.
API сервиса:
rpc Start
- создание экземпляра сценария и его запуск на выполнениеrpc SendEvent
- отправка события работающему экземпляруrpc GetState
- получить состояние экземпляра
Спецификация описана в schema/v1/stateflow.proto
Пример сценария:
state Состояние1: service1.handler
state Состояние2: service2.handler
state Состояние3: service3.handler
[*] --> Состояние1
Состояние1 --> Состояние2
Состояние1 --> Состояние3: [some_event]
Состояние3 --> [*]
Если событие не указано явно, при переходе генерируется событие continue
, которое отрабатывает автоматически.
Где service1, service2, service3 - сервисы, реализующие API, описанный в schema/v1/worker.proto
Хосты и порты для подключения к ним указывается в секции handlers
конфига
Можно задавать интервалы для повторного выполнения обработчика через запятую на случай, если сервис станет недоступен:
state Состояние1: service1.handler
state Состояние1: retry=1m,2m,3m,1h
# Packages
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author