BPMN Workflow Engine

Automate BPMN 2.0 process diagrams
for (micro-)service orchestration, human task flows or both.

BPMN 2.0 Support

The Workflow Engine executes most of the symbols defined in the BPMN 2.0 standard. View the Docs: BPMN 2.0 Coverage for more details.

With BPMN, you can express reliable service orchestration, human task flows, event handling and much more in diagrams that are technically executable yet easy to understand for everyone.

Thanks to the pre-built integration with the DMN Decision Engine, you can easily execute decision tables from within a BPMN process.

REST API

You can access the Workflow Engine via REST in order to start process instances, complete tasks and much more. Check out the REST API Reference for a complete overview.

With the external tasks pattern, you can develop and operate your (micro-)services completely decoupled from the Workflow Engine and let them pull the work via REST whenever it suits them.

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

Java API

Add the Workflow Engine as a simple Maven dependency and use the Java API in your own application. There are also existing integrations with Spring, Spring Boot and Java EE. Calling Java Code from within a BPMN workflow is super simple thanks to Java Delegates.

The Workflow Engine requires less than 3MB, can run in any JVM and comes with extended integration for different Java runtime containers.

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

Performance and Scalability

The Camunda Workflow Engine is lightning fast as it executes persistence as efficiently as possible. In addition, Camunda separates Runtime Data from History Data which is another powerful concept for better performance.

Clustering for horizontal scalability is straightforward as the engine is stateless: multiple instances can share the same database.

You can find a detailed description of these advantages under Performance and Scalability.

Because of its scalability, Camunda is successfully being used by organizations like: