Workflow-движок
Workflow-движок — система, которая управляет выполнением последовательности шагов (задач) по описанной логике процесса:
- какие действия выполняются, в каком порядке, кто за них отвечает и какие условия переходов между шагами.
Если представить бизнес-процесс как конвейер, то Workflow-движок — диспетчер, который передаёт объект (заявку, заказ) от одного исполнителя к другому по строгому маршруту.
Workflow-движок нужен, когда в системе есть повторяющиеся, формализованные процессы, состоящие из нескольких этапов с предсказуемыми переходами и условиями.
Реализует паттерн оркестрации
Как работает
Компоненты
- Модель процесса: описание шагов, условий, участников и маршрутов.
- Форматы: BPMN, JSON, YAML, собственные DSL.
- Движок исполнения: интерпретирует модель, управляет выполнением шагов.
- Хранилище состояния процессов (активные задачи, контекст данных).
- Интерфейс взаимодействия: API или UI для запуска, мониторинга и управления процессами.
- Исполнители (Workers): внешние сервисы / люди, выполняющие задачи.
Принцип работы
- Разработчик / аналитик описывает процесс.
- Движок интерпретирует модель, создаёт экземпляр процесса.
- Каждый шаг выполняется человеком / системой.
- Движок отслеживает статус и двигает процесс дальше по маршруту.
Типовой цикл процесса
- Запуск — процесс стартует по событию или API-запросу.
- Исполнение — движок выполняет шаги, проверяет условия переходов.
- Ожидание — если требуется ввод данных пользователем или внешним сервисом.
- Завершение — финальный статус, логирование результатов.
Примеры
- Согласование документов (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 — для непредсказуемых, быстро меняющихся процессов с слабыми связями между компонентами
Примеры ПО
| Название | Тип | Особенности |
|---|---|---|
| Temporal | Open Source | Надёжная оркестрация, поддержка stateful workflows, SDK для разных языков. |
| Cadence | Open Source | От Netflix, предшественник Temporal, высокая отказоустойчивость. |
| Netflix Conductor | Open Source | YAML-описания, хорош для микросервисов. |
| n8n | Open Source | Визуальный low-code редактор, лёгкая интеграция API. |
| Apache Airflow | Open Source | DAG-оркестрация задач (ETL, аналитика). |
| Camunda | Коммерческая / OSS | Полноценная BPM-платформа, включает workflow-движок. |
| JBPM / Bonita | Open Source | BPM-решения с визуальным моделированием. |
| OpenBPM Engine | Российское ПО | Совместим с API Camunda 7 |
| ELMA RPA/Workflow | Российское ПО | Low-code BPM/Workflow-платформа, интеграция с СЭД и CRM. |
Материалы
- Workflow Core — движок бизнес-процессов для .Net Core
- Как мы делали свой движок Workflow
- Интеграция с «Госуслугами». Применение Workflow Core (часть II)
- Интеграция с «Госуслугами». Особенности реализации задачи средствами Workflow Core (часть III)
- Интеграционная платформа в The Platform: что умеет, как работает и зачем ей Workflow Engine
- Oracle BPEL — опыт использования в качестве workflow-движка
- Как работают приложения Сбербанк Онлайн: Workflow API и фрэймворки
- Используйте Camunda как удобный REST-движок для оркестрации и workflow — без необходимости работать с Java
- Что такое Workflow? Топ 10 Workflow-систем
- Мутации в микросервисах: применяем Temporal
- Awesome-workflow-engines (workflow-движки)
- jBPM: аналоги и альтернативы
Видео
- Оркестрируй это! Описываем сложные бизнес процессы на PHP
- Workflow Engines & Event Streaming Brokers - Can They Work Together? (en)
- N8N АКОНЕЦ СТАЛ БЫСТРЫМ! Асинхронные workflow за 10 минут
- Apache Airflow Tutorial for Beginners: Workflow Orchestration Explained!
- Оркестрация с помощью Temporal: как это устроено и как применять на практике — Антон Цитульский