Overview of frameworks for microservices orchestration: Conductor, Zeebe, Temporal

Orchestrating microservices helps you build complex processes in products. In order not to have to write this mechanic by hand, developers can use ready-made frameworks that include tools for managing microservices. We at True Engineering studied this topic and talk about three such frameworks.





When automating a complex business process, a product can involve several microservices at once. And if in a monolith it is quite simple to build the interaction of several modules, then in a distributed architecture, where each such component is a separate application, difficulties arise.





The microservices orchestrator monitors the execution of processes. As a result, data is not lost, it becomes easier for support to fix problems, and it becomes easier for developers to manage the development of the entire system.





You can write such a module from scratch, or you can use a ready-made framework. If a company has several development teams, such frameworks are indispensable. First, programmers don't have to do the same job over and over again. Secondly, when everyone uses common tools, teams have uniform standards of work, and this immediately affects the quality of products. Instead of reinventing the wheel, everyone is focusing on developing a common tool.





Orchestration framework architecture

The framework includes out-of-the-box orchestration components. This is the orchestrator itself, which accepts tasks and transfers them to working microservices for execution.





(, ), , . ยซ ยป, ยซ ยป, ยซ ยป. . , , .





, .





  • . , . , .





  • . . , - , , - . , Saga โ€“ , - .





  • . , .





  • . , (, Java .NET).





, . , .





Conductor Netflix. - JSON-. , . - โ€“ .





Zeebe Camunda. Camunda โ€“ BPMN-, (, -). Camunda, Zeebe . โ€“ , -. XML-.





Temporal. . โ€“ , . .





:





  • . Zeebe . Temporal โ€“ .





  • . , yj Zeebe . Saga .





  • . .





  • . Java-, .NET- .





The comparison shows that there is no silver bullet - each framework is good in its own way. The tool needs to be selected in a dialog with commands - someone may be more comfortable working with JSON, another will appreciate the visualization, and the third will want to use clean code.





But any framework is better than embedding orchestration in each product's code separately. So developers have to delve into the mechanics and overload the code every time. And across the company, you'll get uniform standards that help bring all your teams to a common development platform.








All Articles