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

Камунда.РФ 8

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

Камунда.РФ 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)

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

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

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

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

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

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

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

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

  • события в log stream

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

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

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

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

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

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

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

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

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

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

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