BPMS
Зачем
- автоматизация процессов BPMN
- оркестратора — конвейера, который обрабатывает, например, сущность «заявки»
- Он по очереди создает клиента, счет и банковскую карту.
- Если клиент и счет созданы успешно, а создание карты провалилось, заявка не переходит в статус «успешно» и остается в статусе «карта не создана».
- В будущем фоновая активность подхватит ее и закончит.
- Система некоторое время находится в состоянии несогласованности, но нас это, в целом, устраивает.
Плюсы и минусы
Плюсы:
- визуализация всего процесса
- контроль, мониторинг процесса
- тепловая картв интенсивности процессов
- управление распределенными транзакциями
Минусы:
- единая точка отказа
Паттерны
- Машина состояний FSM - это декларативная модель процесса. Я не отдаю команды, я объявляю, декларирую Правила:
- П-1: В системе различаются 5 состояний: A,B,C,D,E;
- П-2: Система распознаёт 6 сигналов (событий): S1, S2..S6
- П-3: S2 всегда (DFSM) переводит систему из состояния C в состояние D;
- BPMN - императивная модель процесса
- Моделировать всегда надо Процесс. А не документы, которые лежат на столе у заказчика (как юридические/информационные артефакты процесса)
- Важны наименования: ОбработкаЗаявки, а не Заявка. Тогда поле ОбработкаЗаявки.Статус (или вообще отдельный, от Обработки Заявки, механизм FSM) - не будет вызывать вопросов.
Технологии
- zeebe-io?
- camunda
- apache activiti
- Apache Airflow
- ELZA
- Activiti framework (Java) 6.0.0