Разница между автономным использованием Camunda и его интеграцией в Java-приложение заключается в способе работы с движком. 1
Автономное использование (Standalone-сервер) предполагает запуск отдельного приложения Camunda, в которое загружаются процессные приложения в виде war-файлов. 1 В этом случае Camunda выступает в роли отдельно стоящего сервиса (или кластера сервисов), взаимодействие с которым происходит через сеть, посредством REST API. 3
Интеграция в Java-приложение (Embedded-вариант) подразумевает использование Camunda как библиотеки внутри Java-приложения. 1 В этом случае указываются зависимости в приложении и работа с Camunda происходит через Java API. 1
Некоторые преимущества автономного использования:
- Слабая связанность. 4 BPM-движок развёртывается и настраивается независимо от приложения и процессного решения. 4 Проблемы можно легко локализовать в одном из компонентов, а уязвимости не распространяются на другие компоненты. 4
- Улучшенное масштабирование. 4 BPM-движок может масштабироваться независимо от кода приложения. 4
- Проще начать работу. 4 Можно развернуть движок с помощью простой команды Docker и не нужно углубляться в конфигурации собственного приложения. 4
Некоторые преимущества интеграции в Java-приложение:
- Общий жизненный цикл. 3 BPM-движок и приложение будут иметь общий жизненный цикл — можно выкатывать одним релизом все обновления (сервисы, Camunda, описания процессов, делегатный код). 3
- Возможность организовать хореографию сервисов. 3 При использовании микросервисной архитектуры встроенная в микросервис Camunda позволяет организовать взаимодействие сервисов. 3