The challenge with microservices is that each one only keeps records of its own transactions (if it does this at all). If a service such as a web shopping cart, based on a chain of microservices, fails to complete its task, it can be very difficult to pinpoint where exactly the issue is. Moreover, traditional workflow systems weren’t designed for the volume of transactions demanded by microservices.
As a result, composing microservices into a coherent whole can be a tricky task, said Bernd Ruecker, co-founder and developer advocate of the Berlin-based Camunda, in a session at the O’Reilly Software Architecture conference, held earlier this year in New York.
The developer may want each service to act independently, though the architect also wants assurances that the workflow can complete the task. Tying components together too tightly can be likened to a three-legged race, where forward momentum is somehow even less performant than the slowest partner.
To this end, Ruecker’s Camunda, a 10-year old company that originally built a developer-friendly workflow engine as a simpler alternative to enterprise service buses, has given its engine a new workload: handling complex workflows for microservices-based systems.
The Camunda Enterprise Platform and its open-source code base Cockpit provides workflow automation, giving the developer the ability to coordinate and oversee complex operations of multiple components, or microservices. The platform has analysis software, called Optimize, that provides data visualization, alerting and advanced analytics.
The Camunda platform uses Business Process Model and Notation (BPMN) as the workflow programming language. Originally created in the era of Web services, the language offers a number of advantages in this emerging era of microservices, over package-specific languages that other competitors in this space, such as Amazon Web Services’ Simple Workflow Service.
“Within the standardization of BPMN, there were so many discussions going on, that the language really evolved,” Rucker said.
Originally, Camunda’s software provided a simpler to use alternative to heavyweight BPM-driven work engines, such as IBM’s WebSphere Process Server or the Oracle BPM suite. At the time, BPM was pretty heavily tied to Web Services and Service Oriented Architectures, the appetite for which faded around the turn of the decade.
Shortly after that time though, companies like Netflix were exploring the challenges of managing large numbers of loosely-coupled services. Netflix eventually developed Conductor to grapple with the problem of microservices composition and overview. Other open source projects such as Uber’s Cadence and ING’s Baker also tackled similar issues.
At its core, the Camunda Enterprise Platform contains a workflow engine or state engine, that processes flowchart models serialized in the XML-based BPMN. “You draw a flow chart in any BPML-compliant tool and hit save a state engine interprets that XML file,” explained Jakob Freund, co-founder and CEO of Camunda. The software can handle complex logic such as external alerts, conditional branches and other control flow mechanisms. A record of all the transactions are saved in the database, so they can be analyzed later through Optimizer.
The state machine itself is implemented in Java and communicates through both a Java API and a standard REST-based API. “This means I can pair Camunda with any messaging queue or service,” Freund said.
The company is also building a second-generation workflow engine, now an experimental build called ZeeBe, specifically for easy integration into stream processing software, such as Kafka.
The current platform has thus far been deployed in at least several hundred production workloads, including those run by 24 Hour Fitness, AT&T, Lufthansa Technik, University of Munich and Zalando. European insurance provider Talanx uses the software to provide an end-to-end view of all of its workflow processes. NASA’s Jet Propulsion Laboratory plans to use the software to process images that will be sent back to earth from the Mars Rover.
The company is holding a number of Camunda Days around the globe over the next few months to further acquaint users with the technology. Also, the company is holding a web seminar on April 11 to further explain the new features on its Optimize performance analysis and visualization component.
Feature image: Camunda Optimize’s heat map visualization.