BPMN Workflow Engine

BPMN-Prozessmodelle automatisieren: (Micro-)Services Orchestration, Human Workflow Management, uvm.

BPMN 2.0 Unterstützung

Die Workflow Engine unterstützt fast alle Symbole des BPMN 2.0 – Standards. Den kompletten Überblick finden Sie unter Docs: BPMN 2.0 Coverage.

BPMN eignet sich für Services-Orchestrierung, Human Workflow Managemement, Event Handling und viele weitere Use Cases. Mit BPMN können Sie Workflows definieren die technisch ausführbar und trotzdem fachlich leicht verständlich sind.

Dank der vorhandenen Integration mit der DMN Decision Engine können Sie innerhalb eines BPMN-Workflows auch sehr leicht Entscheidungstabellen ausführen.

REST API

Sie können die Workflow Engine via REST nutzen, um Prozessinstanzen zu starten, Aufgaben abzuarbeiten, usw. Die komplette REST API Dokumentation finden Sie unter REST API Reference.

Mit dem External Tasks Pattern können Sie Ihre (Micro-)Services komplett entkoppelt von der Workflow Engine entwickeln und betreiben, so dass sich Ihre Services die Arbeit via REST ziehen, wann immer es Sinn macht.

POST /process-definition/key/invoice/start
Request Body:
{"variables":
{"creditor" : {"value" : "Nice Pizza Inc.", "type": "String"},
"amount" : {"value" : 12, "type": "Integer"}}
}

Java API

Die Workflow Engine kann als simple Maven dependency in jede Java-Anwendung eingebettet werden, um dann via Java API von Ihrer Anwendung benutzt zu werden. Zusätzlich gibt es Integrationen mit SpringSpring Boot und Java EE. Aus einem BPMN-Workflow heraus kann Java-Code sehr einfach ausgeführt werden, in dem Sie Java Delegates benutzen.

Die Workflow Engine ist weniger als 3MB groß, läuft in jeder JVM und besitzt eine erweiterte Integration für unterschiedliche Java Application Servers.

Map variables = new HashMap();
variables.put("creditor", "Nice Pizza Inc.");
variables.put("amount", 12);
ProcessInstance instance = runtimeService.startProcessInstanceByKey("invoice", variables);

Performance und Skalierbarkei

Die Camunda Workflow Engine ist super-schnell dank sehr effizienter Persistenz-Strategien. Außerdem trennt Camunda die Laufzeit-Daten („Runtime“) von historischen Daten („History“), was sich ebenfalls sehr positiv auf die Performance auswirkt.

Horizontale Skalierbarkeit mittels Clustering ist sehr einfach, da die Engine zustandslos ist: Mehrere Instanzen teilen sich einfach eine Datenbank.

Sie finden eine detaillierte Beschreibung dieser Aspekte unter Performance und Skalierbarkeit.

Dank seiner guten Performance wird Camunda u.a von diesen Organisationen erfolgreich eingesetzt:

Rocket