Categorygithub.com/timickb/narration-engine
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