BPMN Workflow Engine

BPMN-Prozessmodelle automatisieren:
(Micro-)Service 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 Service-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 Workfow 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 Spring, Spring 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 Skalierbarkeit

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 stateless ist: Mehrere Instanzen teilen sich einfach eine Datenbank.

Sie finden eine detaillierte Beschreibung dieser Aspekte unter Performance and Scalability.

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