Integration of business processes made easy with Camunda
Problem
In our daily project work, we often encounter complex business processes that we have to depict in existing software for the customer. In many cases, you obtain or create a process diagram in "PowerPoint Notation" based on customer requirements and implement e.g. a state machine that corresponds to the process.
But such an individual solution is usually very inflexible and process changes might cause a divergence between output diagram and code.
Solution
There are several workflow management systems that can be integrated into existing software projects in different ways. In two ABI projects, we chose to work with Camunda – an open source Java workflow engine that works with BPMN 2.0, DMN 1.1, and CMMN 1.1 process definitions.
Camunda offers many advantages:
- Since the supported notations are standardized, you are not tied to a specific workflow engine
- A BPMN process is an XML document that can be visually modeled in editors together with the customer and can be processed by workflow engines
- Due to versionable processes, it is very easy to develop processes with the customer
- Business processes can be subdivided into sub-processes
- Camunda provides three web applications out-of-the-box to handle manual process tasks, to manage users and to monitor processes
- Camunda can be integrated in different ways, e.g. as a JAR library, as cluster-enabled standalone REST service or as container service
Example
In the illustration, you can find a BPMN process to order a pizza in a restaurant. It consists of 3 lanes, one for the guest, for the waiter and for the cook.
Further aspects
- Camunda website: https://camunda.com/
- Examples of using Camunda: https://github.com/camunda/camunda-bpm-examples
- BPMN specification of the OMG: http://www.bpmn.org
- List of notable workflow management systems: https://en.wikipedia.org/wiki/Workflow_management_system#List_of_notable_WfMS