Камунда.РФ 8

Камунда.РФ 8 — это независимая производная (fork) открытого программного обеспечения Camunda 8.5 (Zeebe), распространяемого под лицензией Apache License 2.0. Проект развивает это ядро, фокусируясь на безопасности, локализации и поддержке для русскоязычных пользователей.

Краткое описание Камунда.РФ 8

Камунда.РФ 8 — это платформа оркестрации процессов, построенная вокруг распределённого workflow-движка.

В отличие от Камунда.РФ 7 и Camunda 7:

  • нет встроенного BPMN-движка с состоянием в централизованной БД

  • используется event-sourcing и log-based storage

  • основной API — gRPC (REST используется ограниченно)

  • высокая горизонтальная масштабируемость

Основные компоненты, образующие кластер Камунда.РФ 8:

  • Камунда.РФ 8 Engine — движок выполнения процессов

  • Камунда.РФ 8 Gateway — точка входа для gRPC-клиентов

Основные понятия

  • Deployment — публикация ресурсов (BPMN-диаграмм) в кластер Камунда.РФ 8

  • Process Definition — BPMN-модель процесса

  • Process Instance — выполняющийся экземпляр процесса

  • Job — единица работы для Worker

  • Worker — клиент, выполняющий Job

Предварительные требования

  • Запущенный Камунда.РФ 8 кластер (см. инструкцию по установке)

  • gRPC-endpoint Камунда.РФ 8 Gateway

  • BPMN-файл процесса (например order-process.bpmn)

Подключение к Камунда.РФ 8 (пример)

Примеры ниже показаны концептуально. Реализация зависит от используемого SDK (Java, Go, Node.js).

Деплой процесса (DeployResource)

Назначение

Загружает BPMN/DMN ресурсы в кластер Камунда.РФ 8.

gRPC метод

Gateway/DeployResource

Пример (Java, концептуально)

client.newDeployResourceCommand()
.addResourceFile("order-process.bpmn")
.send()
.join();

Результат

Возвращается информация о деплое и версии process definition.

Запуск процесса (CreateProcessInstance)

gRPC метод

Gateway/CreateProcessInstance

Пример (Java)

client.newCreateInstanceCommand()
.bpmnProcessId("order-process")
.latestVersion()
.variables("{ "orderId": 12345, "amount": 1000 }")
.send()
.join();

Результат

Возвращается processInstanceKey — уникальный идентификатор экземпляра.

Получение статуса процесса

Особенность Camunda 8

Камунда.РФ 8 Engine/Gateway не предоставляет прямой gRPC-запрос «получить статус процесса».

Статус определяется косвенно через:

  • события в log stream

  • в Камунда.РФ Пульт, через подключенное расширение "История"

  • наличие активных jobs

Рекомендуемый способ

Для runtime-мониторинга используйте Operate.

Работа с Job (Workers)

Активация Job (ActivateJobs)

Gateway/ActivateJobs

Пример воркера (Java)

client.newWorker()
.jobType("payment-service")
.handler((jobClient, job) -> {
// бизнес-логика
jobClient.newCompleteCommand(job.getKey())
.send();
})
.open();

Завершение Job

gRPC метод

Gateway/CompleteJob

Job считается выполненной после успешного вызова.

Типовой жизненный цикл процесса

  1. Установка (Deployment) BPMN‑модели процесса

  2. Запуск процесса, создание экземпляра

  3. Мониторинг статуса через Камунда.РФ Пульт

  4. Worker активирует Job

  5. Worker завершает Job

  6. Экземпляр процесса продолжается или завершается