Перейти к основному содержимому

Workflow-движок

Workflow-движок — система, которая управляет выполнением последовательности шагов (задач) по описанной логике процесса:

  • какие действия выполняются, в каком порядке, кто за них отвечает и какие условия переходов между шагами.

Если представить бизнес-процесс как конвейер, то Workflow-движок — диспетчер, который передаёт объект (заявку, заказ) от одного исполнителя к другому по строгому маршруту.

Workflow-движок нужен, когда в системе есть повторяющиеся, формализованные процессы, состоящие из нескольких этапов с предсказуемыми переходами и условиями.
Реализует паттерн оркестрации

Как работает

Компоненты

  1. Модель процесса: описание шагов, условий, участников и маршрутов.
    • Форматы: BPMN, JSON, YAML, собственные DSL.
  2. Движок исполнения: интерпретирует модель, управляет выполнением шагов.
  3. Хранилище состояния процессов (активные задачи, контекст данных).
  4. Интерфейс взаимодействия: API или UI для запуска, мониторинга и управления процессами.
  5. Исполнители (Workers): внешние сервисы / люди, выполняющие задачи.

Принцип работы

  • Разработчик / аналитик описывает процесс.
  • Движок интерпретирует модель, создаёт экземпляр процесса.
  • Каждый шаг выполняется человеком / системой.
  • Движок отслеживает статус и двигает процесс дальше по маршруту.

Типовой цикл процесса

  1. Запуск — процесс стартует по событию или API-запросу.
  2. Исполнение — движок выполняет шаги, проверяет условия переходов.
  3. Ожидание — если требуется ввод данных пользователем или внешним сервисом.
  4. Завершение — финальный статус, логирование результатов.

Примеры

  • Согласование документов (HR, закупки, договоры).
  • Автоматизация CI/CD (например, деплой по цепочке шагов).
  • Маршрутизация заказов между системами.
  • Оркестрация микросервисов — последовательный вызов нескольких API.

Пример в архитектуре

[Клиент / UI]
|
v
[API Gateway] ---> [Workflow Engine]
| \
| -> [Сервис 1]
| -> [Сервис 2]
| -> [Сервис 3]
|
[БД состояний]
  • Клиент / внешняя система инициирует процесс через API.
  • Workflow-движок получает запрос, создаёт экземпляр процесса.
  • Для каждого шага движок вызывает нужный сервис (REST, gRPC, очередь сообщений).
  • После завершения шага обновляет состояние и двигается к следующему.
  • Все статусы сохраняются в базе состояний, откуда можно извлечь историю / отчётность.

Интеграции

Workflow-движки — универсальный инструмент для автоматизации сквозных процессов между системами и командами.

Способы интеграции

  • REST/gRPC API — вызовы внешних сервисов из шагов процесса.
  • Очереди сообщений (Kafka, RabbitMQ) — асинхронные события.
  • Webhooks — реакция на внешние события.
  • Коннекторы — готовые модули для CRM, ERP, CI/CD и т.д.

Workflow vs. BPM

Workflow-движок исполняет процессы, а BPM-платформа управляет ими в широком смысле — моделирует, оптимизирует, анализирует.
Часто BPM-платформы включают внутри себя workflow-движок как исполнительный слой.

[BPM-платформа]
|
├── Workflow Engine → Исполняет шаги
├── Modeler → Моделирует процессы
├── Analyzer → Анализирует KPI
└── Optimizer → Улучшает процессы

Сравнительная таблица

КритерийWorkflow-движокBPM-движок
ЦельАвтоматизация цепи задачуправление сквозными бизнес-процессами
МониторингЛоги, состояния задачKPI, SLA, отчёты
ЭлементыШаги, задачи, событияМодели, правила, метрики
АудиторияРазработчики, САБизнес-аналитики, менеджеры
Жизненный циклРазработка → ЗапускПроектирование → Исполнение → Анализ → Оптимизация
ИнструментыAPI, консольRich UI, дашборды, отчеты

Масштабируемость и производительность

Горизонтальное масштабирование

  • Масштабирование движка: запуск нескольких инстансов с общей БД. Позволяет обрабатывать тысячи параллельных процессов.
  • Масштабирование воркеров: создание пула воркеров для каждого типа задач. Например, 10 воркеров для "Проверки документов", 5 для "Отправки уведомлений".
  • Балансировка нагрузки: движок автоматически распределяет задачи между доступными воркерами.

Узкие места

БД — основное хранилище состояния процессов. Требует оптимизации запросов и индексов.
Блокирующие вызовы — синхронные HTTP-вызовы внутри сервис-задач могут создавать очереди.
Долгие транзакции — удержание транзакций открытыми на время человеческих задач.
Память — хранение большого количества активных экземпляров процессов в памяти.

Когда использовать

  • процесс состоит из нескольких акторов или систем.
  • нужно контролировать последовательность шагов и статусы.
  • процесс должен быть управляемым и наблюдаемым (audit trail, SLA, ретраи).
  • логику нужно менять без перекомпиляции кода (например, через модели BPMN или YAML).

Когда не использовать

  • процесс слишком простой (один-два шага).
  • бизнес-логика часто меняется и неформализуема.

Лучше выбрать:

Очереди сообщений (Kafka, RabbitMQ) — когда нужна просто асинхронная обработка без управления состоянием (Kafka, RabbitMQ)
BPM-платформы — когда требуется полный цикл управления процессами с аналитикой и мониторингом KPI
Event-Driven Architecture — для непредсказуемых, быстро меняющихся процессов с слабыми связями между компонентами

Примеры ПО

НазваниеТипОсобенности
TemporalOpen SourceНадёжная оркестрация, поддержка stateful workflows, SDK для разных языков.
CadenceOpen SourceОт Netflix, предшественник Temporal, высокая отказоустойчивость.
Netflix ConductorOpen SourceYAML-описания, хорош для микросервисов.
n8nOpen SourceВизуальный low-code редактор, лёгкая интеграция API.
Apache AirflowOpen SourceDAG-оркестрация задач (ETL, аналитика).
CamundaКоммерческая / OSSПолноценная BPM-платформа, включает workflow-движок.
JBPM / BonitaOpen SourceBPM-решения с визуальным моделированием.
OpenBPM EngineРоссийское ПОСовместим с API Camunda 7
ELMA RPA/WorkflowРоссийское ПОLow-code BPM/Workflow-платформа, интеграция с СЭД и CRM.

Материалы

  1. Workflow Core — движок бизнес-процессов для .Net Core
  2. Как мы делали свой движок Workflow
  3. Интеграция с «Госуслугами». Применение Workflow Core (часть II)
  4. Интеграция с «Госуслугами». Особенности реализации задачи средствами Workflow Core (часть III)
  5. Интеграционная платформа в The Platform: что умеет, как работает и зачем ей Workflow Engine
  6. Oracle BPEL — опыт использования в качестве workflow-движка
  7. Как работают приложения Сбербанк Онлайн: Workflow API и фрэймворки
  8. Используйте Camunda как удобный REST-движок для оркестрации и workflow — без необходимости работать с Java
  9. Что такое Workflow? Топ 10 Workflow-систем
  10. Мутации в микросервисах: применяем Temporal
  11. Awesome-workflow-engines (workflow-движки)
  12. jBPM: аналоги и альтернативы

Видео

  1. Оркестрируй это! Описываем сложные бизнес процессы на PHP
  2. Workflow Engines & Event Streaming Brokers - Can They Work Together? (en)
  3. N8N АКОНЕЦ СТАЛ БЫСТРЫМ! Асинхронные workflow за 10 минут
  4. Apache Airflow Tutorial for Beginners: Workflow Orchestration Explained!
  5. Оркестрация с помощью Temporal: как это устроено и как применять на практике — Антон Цитульский