ekzo
BPMN 2.0 Process Engine

BPMN-движок — исполнительное ядро бизнес-процессов

BPMN 2.0 движок с нативным исполнением и совместимостью с Camunda 8. Определения, экземпляры, переменные и история — через единый REST API.

BPMN 2.0стандарт исполнения
Camunda 8совместимые модели
1 APIуправление и диагностика
0внешних runtime
Назначение

Исполнительное ядро процессов

Workflow — процессный движок платформы Ekzo: он принимает определения процессов, запускает экземпляры, хранит их состояние, выполняет автоматические шаги, координирует пользовательские задачи и предоставляет единый REST API для управления и диагностики всего этого.

Исполнение нативное: процессы выполняются внутри самого сервиса, без внешнего runtime. Camunda Platform 8 — эталон совместимости, а не среда исполнения: модели из Camunda Modeler / Web Modeler (расширения Zeebe, FEEL, DMN) запускаются без переписывания.

Нативный движок
Процессы исполняются внутри сервиса, без внешнего runtime
BPMN + ETL
Один core, два типа процессов: definition → instance → variables → history
Camunda 8
Совместимость как эталон — модели запускаются как есть
Единый REST API
Управление и диагностика через один интерфейс
Принцип работы

От определения до истории

Никакого внешнего оркестрационного кластера — определение модели, запуск экземпляра и вся история выполнения живут внутри одного сервиса.

МОДЕЛИ
BPMN 2.0
нотация
DMN
решения
FEEL
выражения
zeebe: ext
расширения
Ekzo Workflow — нативный BPMN-движок
Definition → Instance → Variables → Execution state → History
ВерсионированиеСохранённое состояниеВозобновление с места остановки
НА ВЫХОДЕ
REST API · Incidents · История выполнения
Возможности

Ключевые возможности

Один движок и один API закрывают исполнение процессов целиком — от модели до диагностики в продакшене.

BPMN 2.0 и ETL
Один core и один API для исполняемого BPMN и (планируемого) декларативного ETL — без отдельных движков.
BPMNETLplanned
Совместимость с Camunda 8
Принимает модели Camunda 8 / Zeebe (расширения zeebe:, FEEL, DMN, модель коннекторов) и воспроизводит их семантику исполнения.
ZeebeFEELDMN
Моделирование и диагностика
Совместим со стандартными графическими редакторами BPMN — модель развёртывается и запускается прямо из Camunda Modeler; инциденты, история выполнения и инспекция экземпляров и переменных.
Camunda ModelerIncidentsHistory
Zero-config, лёгкий след
Один сервис и одна база данных — без брокера сообщений и отдельных воркеров. Низкое потребление ресурсов и простое развёртывание без внешнего оркестрационного кластера.
Zero-configPostgreSQLSQLite
Единый API управления
Один REST API для определений, экземпляров, пользовательских задач, форм, сообщений, сигналов, вебхуков и инцидентов.
RESTOpenAPI
BPMN 2.0

Полное покрытие BPMN

События, задачи, шлюзы и подпроцессы — движок исполняет полный профиль BPMN 2.0 с семантикой, совместимой с Camunda 8.

События

Start (none/message/signal/timer)✓
Intermediate catch (message/signal/timer/link)✓
Intermediate throw (none/message/signal/escalation/link)✓
Boundary — прерывающие✓
Boundary — непрерывающиев планах
End (none/message/signal/error/escalation/termination)✓

Задачи

Service Task (connector)✓
Script Task (FEEL/JS)✓
Business Rule Task (DMN)✓
User Task✓
Send/Receive Task✓
Manual Task✓
External job workers (fetch-and-lock)в планах

Шлюзы

Exclusive XOR✓
Parallel AND✓
Inclusive OR✓
Event-based✓

Подпроцессы и переиспользование

Embedded sub-process✓
Event sub-process✓
Call Activity (версионируемая)✓
Multi-instance (последовательно/параллельно)✓
Error bubbling через scope chain✓
Коннекторы

Коннекторы Service Task и события

Service Task диспетчеризуется в реестр коннекторов по zeebe:taskDefinition type. Сообщения, сигналы и таймеры приводят процесс в движение извне.

REST
Camunda-совместимые исходящие HTTP/JSON вызовы внешних систем.
io.camunda:http-json:1
GraphQL
Исходящие GraphQL запросы и мутации к внешним API.
io.camunda:connector-graphql:1
Webhook
Входящие HTTP-вебхуки, коррелируемые в ожидающий экземпляр процесса.
io.camunda:webhook:1
Сообщения
Корреляция 1:1 по (name, correlationKey). POST /messages, message start events.
Сигналы
Широковещание 1:N. POST /signals, signal start, cross-instance каскад.
Таймеры
timeDate / timeDuration, timer start, повторяющиеся интервалы ISO-8601 и cron.
Управление

Один REST API для всего

Определения, экземпляры, пользовательские задачи, сообщения, сигналы, вебхуки и инциденты — через единый REST API.

workflow · REST API
# Определения
POST/processes
GET/processes
GET/processes/:id/content
# Экземпляры
POST/processes/:id/instances
GET/process_instances
GET/process_instances/:id
POST/process_instances/:id/cancel
DELETE/process_instances/:id
# События
POST/messages
POST/signals
# Задачи
GET/user_tasks
POST/user_tasks/:id/complete
PUT/user_tasks/:id/variables
# Инциденты
GET/incidents
POST/incidents/:id/resolve
Карта функций

Возможности движка и платформы

Статус функций ядра, интеграций и инфраструктуры. Покрытие элементов нотации BPMN — в разделе «BPMN 2.0» выше.

Нативный движок исполнения✓ Готово
Формат Camunda 8 / Zeebe✓ Готово
Версионирование определений✓ Готово
Сохранение состояния и возобновление✓ Готово
FEEL-выражения и DMN✓ Готово
Input/Output mapping (ioMapping)✓ Готово
Коннекторы REST / GraphQL / Webhook✓ Готово
Корреляция сообщений и сигналов✓ Готово
Таймеры: catch / boundary / start / recurring✓ Готово
Пользовательские задачи и внешние формы✓ Готово
Инциденты: список, инспекция, resolve✓ Готово
Единый REST API управления✓ Готово
Интеграция с Ekzo Identity (OAuth/OIDC, JWT)✓ Готово
PostgreSQL / SQLite, фоновые задания в той же БД✓ Готово
Формы JSON Schema и проверка входящих данных✓ Готово
Отмена и удаление экземпляров✓ Готово
Развёртывание и запуск из Camunda Modeler✓ Готово
Сервисы DMN, геокодирования и уведомлений✓ Готово
Назначение задач и candidate groupsв планах
Suspend / resume экземплярав планах
История в Elasticsearchв планах
ETL-процессы (Extract/Transform/Load)в планах
Совместимость

Модели Camunda запускаются как есть

Camunda Platform 8 — эталон совместимости, а не среда исполнения. Движок воспроизводит её семантику нативно.

✓
zeebe: расширения
ioMapping, taskDefinition, taskHeaders, properties
✓
FEEL
Язык выражений для условий, маппингов и вычислений
✓
DMN-решения
Таблицы решений и literal expressions
✓
Модель коннекторов
Camunda-style коннекторы (http-json, graphql, webhook)
✓
Camunda Modeler / Web Modeler
Модели создаются в стандартных редакторах и развёртываются прямо из Camunda Modeler
✓
bpmn-js
Графические диаграммы и диагностика

Модели, созданные для Camunda 8, запускаются без переписывания — движок исполняет их нативно, без внешнего runtime.

Сравнение

Ekzo Workflow vs аналоги

Ключевое отличие — нативное исполнение BPMN + совместимость с Camunda 8 без внешнего runtime и тяжёлого кластера

Ekzo WorkflowCamunda 8FlowableTemporalActiviti
Исполнение BPMN 2.0✓✓✓~✓
Формат Camunda 8 / Zeebe✓✓———
FEEL и DMN✓✓~—~
Без внешнего runtime✓—✓—✓
Единый REST API✓~~✓~
Коннекторы REST/GraphQL/Webhook✓✓~~—
Пользовательские задачи и формы✓✓✓~✓
Лёгкий след (один сервис)✓—~—~
Self-hosted / open✓~✓✓✓
Применение

Практическое применение

Где Workflow ускоряет автоматизацию и снимает зависимость от внешнего движка процессов.

01
Автоматизация бизнес-процессов
Сквозные сценарии: согласования, обработка заявок, многоступенчатые регламенты — от триггера до результата.
02
Оркестрация интеграций
Координация вызовов внешних систем через коннекторы REST/GraphQL/Webhook с обработкой ошибок и повторами.
03
Согласования и человеческие задачи
Пользовательские задачи с формами, черновиками, проверкой введённых данных по схеме формы и завершением через единый API.
04
Запуск по расписанию
Таймеры start/boundary, повторяющиеся интервалы ISO-8601 и cron — фоновые регламенты без отдельного шедулера.
05
Миграция с Camunda
Перенос моделей Camunda 8 / Zeebe без переписывания — движок исполняет их нативно.
06
Часть Ekzo.Platform
В связке с Relay, Registry и Identity — полный цикл автоматизации процессов и данных.

Начните работу с Workflow

Покажем, как перенести процессы из Camunda без переписывания и автоматизировать сценарии на Ekzo.Platform.