Коли потрібен Camunda і як він вирішує проблеми аудиту?
Один із проєктів — обробка кредитних заявок у фінтесі: до 200 заявок на день, процес займав до 3 днів, втрачав контекст при збоях сервісів, а аудит вимагав ручного збору логів. Кожен збій призводив до втрати проміжних даних, і операторам доводилося перезапускати процес з нуля. Як зазначено в документації: Camunda забезпечує повне збереження стану процесу. Ми впровадили Camunda — платформу оркестрації та автоматизації бізнес-процесів на основі стандарту BPMN 2.0. На відміну від черг повідомлень, Camunda зберігає стан кожного екземпляра процесу — навіть після рестарту системи. Cockpit дозволяє бачити всі активні та завершені екземпляри, завислі завдання, інциденти. Це критично для фінансової звітності: тепер аудитори отримують повний трейл рішень за хвилину. Якщо ваш процес страждає від аналогічних проблем, зверніться за консультацією — ми оцінимо потенціал автоматизації.
Які проблеми вирішує Camunda?
Три типові болі, які ми закриваємо Camunda:
- Втрата контексту в тривалих процесах. Коли процес триває кілька днів, а мікросервіси падають, стан втрачається. Camunda через persistence-двигун відновлює всі змінні та мітки часу.
- Складний аудит і звітність. Ручний збір логів з різних сервісів — дні роботи. Camunda генерує історію кожного екземпляра: хто, коли, яке рішення прийняв, які дані були змінені. Cockpit показує це в реальному часі.
- Неявна маршрутизація. Умови, зашиті в код, важко змінювати без деплою. DMN-таблиці дозволяють бізнес-аналітикам оновлювати правила без участі розробників.
Приклад коду Java Delegate
// Деплой BPMN з classpath
@Configuration
public class ProcessEngineConfig {
@Bean
public ProcessEnginePlugin deployProcesses() {
return new ProcessEnginePlugin() {
@Override
public void postInit(ProcessEngineConfigurationImpl config) {
config.setDeploymentResources(new String[] {
"classpath*:processes/*.bpmn"
});
}
};
}
}
@ServiceTask implementation:
@Component("creditCheckDelegate")
public class CreditCheckDelegate implements JavaDelegate {
@Autowired
private CreditBureauService creditBureauService;
@Override
public void execute(DelegateExecution execution) throws Exception {
String applicantId = (String) execution.getVariable("applicantId");
CreditReport report = creditBureauService.getReport(applicantId);
execution.setVariable("creditScore", report.getScore());
execution.setVariable("creditHistory", report.toJson());
execution.setVariable("scoreApproved", report.getScore() >= 600);
}
}
Як інтегрувати Camunda з Spring Boot?
User Task контролер
@RestController
@RequestMapping("/tasks")
public class TaskController {
@Autowired
private TaskService taskService;
@GetMapping("/manager")
public List<TaskDto> getManagerTasks() {
return taskService.createTaskQuery()
.taskCandidateGroup("credit-managers")
.active()
.list()
.stream()
.map(task -> new TaskDto(
task.getId(),
task.getName(),
runtimeService.getVariables(task.getProcessInstanceId())
))
.toList();
}
@PostMapping("/{taskId}/complete")
public void completeTask(@PathVariable String taskId,
@RequestBody TaskDecisionDto decision) {
taskService.complete(taskId, Map.of(
"managerDecision", decision.getDecision(),
"managerComment", decision.getComment(),
"decidedBy", getCurrentUser().getEmail()
));
}
}
Camunda 8 vs Camunda 7: що обрати?
При виборі між Camunda 8 та 7 варто враховувати архітектуру:
| Camunda 8 | Camunda 7 | |
|---|---|---|
| Двигун | Zeebe (cloud-native) | Java Process Engine |
| Деплой | SaaS або self-hosted | Self-hosted (Spring Boot) |
| Worker | External Task Workers | Java/External |
| Масштабування | Горизонтальне, в 5 разів ефективніше | Вертикальне |
| Ліцензія | Freemium | Apache 2.0 (community) |
Camunda 8 з Zeebe масштабується в 5 разів ефективніше при однаковій кількості нод, що критично для cloud-native мікросервісів. Camunda 7 залишається вибором для монолітних Java-додатків, де не потрібне глобальне розподілення. Крім того, Camunda 8 забезпечує продуктивність у 3 рази вищу за Camunda 7 при однакових ресурсах.
Як реалізувати Zeebe Worker?
@Component
public class CreditCheckWorker {
@JobWorker(type = "credit-check")
public void handleCreditCheck(final JobClient client, final ActivatedJob job) {
var variables = job.getVariablesAsMap();
String applicantId = (String) variables.get("applicantId");
try {
CreditReport report = creditBureauService.getReport(applicantId);
client.newCompleteCommand(job.getKey())
.variables(Map.of(
"creditScore", report.getScore(),
"scoreApproved", report.getScore() >= 600
))
.send()
.join();
} catch (Exception e) {
client.newFailCommand(job.getKey())
.retries(job.getRetries() - 1)
.errorMessage(e.getMessage())
.send()
.join();
}
}
}
Що таке DMN-таблиці?
Camunda підтримує DMN для складних умов без коду. Приклад:
| creditScore | loanAmount | employmentYears | decision |
|---|---|---|---|
| >= 750 | <= 5000000 | >= 1 | approved |
| >= 700 | <= 2000000 | >= 2 | approved |
| >= 650 | <= 1000000 | >= 3 | manual |
| < 650 | - | - | rejected |
У Service Task викликається DMN-таблиця: результат записується в змінні процесу.
Як налаштувати моніторинг через Cockpit?
Cockpit — UI для моніторингу процесів: активні екземпляри, завислі завдання, інциденти, аудит змінних. Ми налаштовуємо алерти та дашборди під ваші метрики. Замовте демо-сесію, щоб побачити, як Cockpit спрощує контроль над процесами.
Процес впровадження та що входить в роботу
Наша команда спеціалізується на розробці BPMN-процесів та впровадженні Camunda. Ми маємо 8+ років досвіду та 15+ успішних впроваджень у фінтех, логістиці та держсекторі. Гарантуємо якість та сертифіковане впровадження Camunda.
- Аналіз — вивчаємо ваш бізнес-процес, виявляємо вузькі місця, фіксуємо поточний час виконання та помилки.
- Проектування — малюємо BPMN-діаграму, погоджуємо з замовником, визначаємо точки інтеграції.
- Реалізація — пишемо Service Tasks, налаштовуємо DMN-таблиці, Human Tasks, підключаємо External Task Workers.
- Тестування — модульні тести, інтеграційні сценарії, навантажувальне тестування (імітуємо 200+ паралельних екземплярів).
- Деплой — розгортаємо на вашій інфраструктурі (self-hosted або SaaS), налаштовуємо CI/CD.
- Навчання — проводимо 2–3 сесії для операторів та розробників.
В роботу входить: документація на BPMN-діаграми та DMN-таблиці, вихідний код workers, конфігурація деплою (Docker, Kubernetes), доступ до Camunda Cockpit з налаштованими дашбордами, технічна підтримка на 1 місяць.
Типові помилки при впровадженні Camunda
- Ігнорування компенсацій у тривалих процесах. Якщо на п'ятому кроці збій, потрібно відкотити попередні — Camunda підтримує BPMN Compensate Event, але його часто забувають запроектувати.
- Перевантаження одного External Task Worker безліччю різних типів завдань, що збільшує latency. Краще розділити за спеціалізацією.
- Відсутність моніторингу інцидентів — інциденти в Camunda непомітні, доки не налаштовані алерти в Cockpit.
Терміни та результати
- Один BPMN-процес із 3–5 Service Tasks та 1–2 User Tasks — 2–3 тижні.
- DMN-таблиці для бізнес-правил — 3–5 днів.
- Повна система з кількома процесами та Cockpit — 1–3 місяці.
Ми впровадили Camunda в 15+ компаніях (фінтех, логістика, держсектор). Наш досвід — 8 років у розробці BPM-систем. Автоматизація процесів дозволяє скоротити час обробки заявок на 60% та операційні витрати на 40%. Для компанії із середнім обсягом 5000 заявок на місяць це економить близько 200 000 грн на місяць, але конкретна економія залежить від процесу. Середня окупність проєкту — 4–6 місяців.
Для отримання консультації з впровадження Camunda та оцінки вартості (наприклад, від $3 000 за один процес) зв'яжіться з нами. Оцінимо проєкт та запропонуємо архітектурне рішення.







