Blogs | Srijan

Business Process Management with the Camunda Workflow Engine

Written by Rajat Lal | Feb 13, 2017 8:00:00 AM

What’s your company’s annual turnover? Something in the range of $2.0 billion, €2.2 billion, Rs2,000 crore, or Rs500 crore? Is your company growing gradually, or does it change shape seasonally? Do you have a robust and scalable workflow and business process management infrastructure to deliver efficiently both at the time of peak and low? If not, you are yet to appropriate more from your process and workflow management system. 

Suppose you are a lending organization specializing in social enterprise; or an international travel agency. How do you manage the lifecycle of a loan request from its inception to approval and then to appropriation, or a price inquiry for a holiday package to invoicing for the tour for two? Are you thinking if these are at all realistic? That’s because you are yet to meet the Camunda workflow engine. 

What is Camunda BPM Engine? 

The Camunda BPM engine is an open source, Java-based framework that provides an intelligent workflow or business process management (BPM) system for any kind and size of organisation. It offers pre-designed BPM systems that can be modeled and executed for workflow and business process automation, for Case Management, and for Business Decision Management. It is centered around a runtime engine and uses an in-built modeling tool to execute the business process designs.

Camunda supports the following processes and environments: 

  • BPMN 2.0 Processes for completely automated service orchestration and human workflow management

  • CMMN 1.1 Cases for less structured case management activities

  • DMN 1.1 Decisions for executing decision tables for business rule automation

Technical Architecture 

Teams of Camunda developers are continuously striving to make design and implementation easier for Java developers who work with workflow processes. They are innovating and adding new tools for better execution of business processes and workflows on the Java virtual machine. 

To enable non-Java developers use the BPM system and the process engine technology, Camunda BPM offers REST API that allows one to build applications with a remote process engine connection. 

The core consists of a lightweight execution engine that uses less than 3MB of disk space. The engine can run in any Java Virtual Machine (JVM) and comes with extended integration for different runtime containers.     

The following diagram depicts the most important components of Camunda architecture.

Process Engine and Infrastructure

This comprise a lightweight POJO core and a Java library that executes BPMN 2.0 processes, CMMN 1.1 cases and DMN 1.1 decisions. The core uses a relational database for persistence, a Spring Framework Integration, a CDI/Java EE Integration, and a Runtime Container Integration.

Modeler

The Camunda Modeler helps modeling both diagrams and decision tables for BPMN 2.0, CMMN 1.1, and DMN 1.1.

Web Application

The Camunda BPM web applications are based on a RESTful architecture that allows business users to use the process engine from a remote application or a JavaScript application. The app includes: 

  • Tasklist: Enables human workflow management by allowing users to inspect their workflow tasks and accordingly navigate to the task forms to execute those and provide data input.

  • Cockpit: Allows inspection of continuing and completed process instances and take care of incidents.

  • Admin: Allows management and organisation of users, and granting of permissions according to roles and groups.

  • Cycle: Allows integrating Camunda BPM with a third-party BPMN modeler.

  • Custom Application: Allow seamless integration of third party applications with Camunda BPM components.

Why Camunda?

Camunda is extremely developer-friendly on one hand, while being extremely business-friendly on the other. Camunda developers say, “developers and business users should hug at least once per day.” They make this possible by almost closing the gap between business processes visualized by business analysts and the actual software that automates and replicates those processes, in Camunda. 

Camunda is both developer- and business-friendly

To achieve both developer- and business-friendliness, Camunda: 

  • Has kept the core engine very light; it needs less than 3 MB of disk space 

  • Doesn’t force model driven development for every aspect of process implementation

  • Strives to maintain ease of use in its BPMN-CMMN-DMN modeler 

  • Enables business users to change and customize elements of the process application easily

  • Provides real-time monitoring data as model annotations, which are more intuitive and useful

Integrating Camunda with Third-Party apps, like Drupal, is easy

When multiple teams and applications in an enterprise team have to work together, a combination of a content management system with a Business Process Model and Notation 2.0 (BPMN 2.0) Workflow Management System seems to be the requirement of the day. In such situations, the Camunda-Drupal connector module can be configured to set up a content creation workflow.

Camunda is often a preferred choice because it allows for seamless integration with such third party apps. For example, Camunda can be integrated with Drupal in a way where users interact with Drupal to complete each step of the workflow, while Drupal workflow administrators configure the forms and actions for each step.  

Camunda is Highly Scalable

The Camunda workflow engine can be scaled to any imaginable level – for the $2.0 billion company, the €2.2 billion company, as well as for the Rs200 crore company. 

Specific features that allow Camunda to scale at such magical levels are: 

  • Persistence Strategies: Camunda can run on various different relational databases by using each of them efficiently. Its efficiency in using databases rises from features such as its compact data model and sophisticated algorithms, optimistic concurrency control that also minimizes risk of deadlocks, fine granular control over the placement of savepoints thereby allowing balance of fault tolerance and performance, and intelligent caching. 

  • Clustering: Camunda allows running on Clusters to achieve load balancing and high availability. It allocates a minimal amount of RAM resource per node, which means many process engine instances can be run on each node.

  • Runtime vs. History: Camunda separates Runtime Data from History Data, which is a very powerful architectural concept for performance optimization. It also allows for History Event streaming where the process engine will simply write this event stream to the Camunda history database. Additionally, the history level controls the amount of data the process engine provides and thus allows creating one’s unique log level configuration. 

 

The scalability features alone makes Camunda stand apart from various other hybrid and in-house developed BPM models. Teams of Camunda developers follow a short-term roadmap that aligns with their long-term vision. The vision is to make the best pre-designed workflow management process that yields easily to design and implementation situations, both for Java developers who work with workflow processes and non-Java developers. 

If your enterprise works on a Drupal, and the Camunda workflow engine looks like the answer to your workflow automation requirements, an integration could yield powerful results. Just drop us a line and let’s get things started.