Практика

Camunda 8 за час: запускаем первый процесс

Практическое руководство: установка Camunda 8 локально, моделирование простого процесса, запуск экземпляра через REST API.

В этой статье мы пошагово настроим Camunda 8 на локальной машине и запустим первый BPMN-процесс. Цель — за час получить рабочее окружение, в котором можно экспериментировать с моделями.

Что понадобится

  • Docker и Docker Compose (актуальные версии)
  • Camunda Modeler (десктоп-приложение, скачивается с camunda.com)
  • Браузер для доступа к веб-консолям
  • Базовое понимание REST API

Установка через Docker Compose

Camunda предоставляет официальный docker-compose файл для локальной разработки. Создайте папку camunda-local и скачайте туда официальный compose:

mkdir camunda-local && cd camunda-local
curl -L -O https://github.com/camunda/camunda-platform/raw/main/docker-compose.yaml
docker compose up -d

Платформа развернёт несколько контейнеров:

  • Zeebe — процессный движок (gRPC порт 26500)
  • Operate — UI мониторинга (http://localhost:8081)
  • Tasklist — UI для пользовательских задач (http://localhost:8082)
  • Optimize — аналитика (http://localhost:8083)
  • Elasticsearch — хранилище для Operate, Tasklist, Optimize

После запуска (1-2 минуты) проверьте Operate в браузере. Логин/пароль по умолчанию — demo/demo.

Первая модель

Откройте Camunda Modeler и создайте новый BPMN-диаграмму. Нарисуйте простой процесс:

  1. Стартовое событие (Start Event) → Сервисная задача «Подсчитать сумму» → Пользовательская задача «Согласовать» → Шлюз XOR → Конечное событие «Одобрено» / «Отклонено»

Для сервисной задачи установите тип «Service Task» и в свойствах укажите Task Type: calculate-amount. Это «адрес» обработчика, который должен быть зарегистрирован в платформе.

Для пользовательской задачи установите тип «User Task» и Assignee: demo.

Сохраните модель как loan-process.bpmn.

Деплой модели

В Modeler нажмите Deploy current diagram. Укажите endpoint Zeebe: localhost:26500. Модель загрузится в платформу.

После деплоя в Operate вы увидите новый процесс в разделе Processes.

Запуск экземпляра

Запустить процесс можно через Operate (кнопка Start Process Instance) или через REST API:

curl -X POST http://localhost:8080/v2/process-instances \
  -H 'Content-Type: application/json' \
  -d '{
    "processDefinitionId": "loan-process",
    "variables": {
      "applicantId": "12345",
      "amount": 50000
    }
  }'

Откройте Operate — увидите запущенный экземпляр, остановившийся на сервисной задаче (ожидает обработчика).

Регистрация воркера

Сервисные задачи в Zeebe выполняются «воркерами» — внешними процессами, которые подключаются к платформе и берут на себя работу. Простой воркер на Node.js:

const { ZBClient } = require('zeebe-node');
const zbc = new ZBClient('localhost:26500');

zbc.createWorker({
  taskType: 'calculate-amount',
  taskHandler: (job) => {
    const { amount } = job.variables;
    const fee = amount * 0.02;
    return job.complete({ fee, totalAmount: amount + fee });
  }
});

Запустите воркер. В Operate увидите, что сервисная задача завершилась, и процесс перешёл к пользовательской задаче.

Выполнение пользовательской задачи

Откройте Tasklist в браузере. Залогиньтесь как demo/demo. Увидите задачу «Согласовать». Откройте её, заполните форму (если она была настроена), нажмите Complete.

Процесс пройдёт через шлюз XOR и завершится. В Operate можно увидеть полную историю выполнения.

Следующие шаги

Базовое окружение готово. Дальнейшие шаги для углубления:

  • Изучить FEEL для условных выражений в шлюзах
  • Освоить incident management для обработки ошибок
  • Подключить внешние системы через REST/messaging
  • Настроить multi-instance и таймеры
  • Изучить DMN для бизнес-правил

Все это покрыто официальной документацией Camunda. Локальное окружение из этой статьи — отличный полигон для экспериментов.

#Camunda#Практика#BPMN#Tutorial
Все статьи На главную