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-диаграмму. Нарисуйте простой процесс:
- Стартовое событие (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. Локальное окружение из этой статьи — отличный полигон для экспериментов.