Anton Sidorov homepage

Bookmark this to keep an eye on my project updates!

Follow me on GitHub

BPMS

Зачем

  • оркестратора — конвейера, который обрабатывает сущность «заявки»
    • Он по очереди создает клиента, счет и банковскую карту.
    • Если клиент и счет созданы успешно, а создание карты провалилось, заявка не переходит в статус «успешно» и остается в статусе «карта не создана».
    • В будущем фоновая активность подхватит ее и закончит.
    • Система некоторое время находится в состоянии несогласованности, но нас это, в целом, устраивает.

Плюсы и минусы

Плюсы:

  • визуализация всего процесса
  • контроль, мониторинг процесса

Минусы:

  • единая точка отказа

Паттерны

  • Машина состояний FSM - это декларативная модель процесса. Я не отдаю команды, я объявляю - декларирую - Правила:
    • П-1: В системе различаются 5 состояний: A,B,C,D,E;
    • П-2: Система распознаёт 6 сигналов (событий): S1, S2..S6
    • П-3: S2 всегда (DFSM) переводит систему из состояния C в состояние D;
  • BPMN - императивная модель процесса
  • Моделировать всегда надо Процесс. А не документы, которые лежат на столе у заказчика (как юридические/информационные артефакты процесса)
  • Просто вещи надо называть своими именами - ОбработкаЗаявки, а не Заявка. Тогда поле ОбработкаЗаявки.Статус (или вообще отдельный, от Обработки Заявки, механизм FSM) - не будет вызывать вопросов.

Технологии

Примеры