Meet Cadence: The Open Source Orchestration Workflow Engine
Developers are often faced with complexity when building and operating long-running processes that involve multiple service calls and require continuous coordination. To solve this challenge, Uber built and introduced Cadence, the open-source solution for workflow orchestration in 2016 that enables developers to directly express complex, long-running business logic as simple code. Since its debut, it continues to find increased traction with developers operating large-scale, microservices-based architectures. More recently, Instaclustr announced support for a hosted version of Cadence.
In this episode of The New Stack Makers podcast, Ben Slater, chief product officer at Instaclustr and Emrah Seker, staff software engineer at Uber discuss Cadence, and how it is used by developers to solve various business problems by enabling them to focus on writing code for business logic, without worrying about the complexity of distributed systems.
Originally developed by Uber in 2016, Cadence was built to account for skill challenges and the increasing requirements coming from different product teams, Seker said. “The primary value add of Cadence is that it allows the product developers to state what they want to do in their products, describe their intentions, and forget about the distributor system problems. It makes their system distributed and reliable and scalable behind the scenes,” said Seker.
“Cadence is a great abstraction of a lot of complexity,” Slater said. “If you were to code from scratch, there’s a lot of delay to scale out to multiple hosts that you end up having to code yourself. Cadence gives a good framework to plug your business logic code in, and then all that stuff just kind of works,” Slater added.
While traditional workflow solutions take a prescribed number of steps to perform for a given operation, Cadence runs multistep operations at very high performance, Seker said. Its unique value is that “in a distributed environment, you must account for the network failures, the throttling, rate limiting and observable requirements around where a particular order is in its lifecycle. And Cadence basically gives all of these out of box,” said Seker.
“It reflects the modern world today as we expect developers to be able to understand the business, and to work directly with the business. Cadence allows them to express that understanding in the languages that they’re familiar with,” said Slater.
Ultimately, Cadence becomes valuable when “you got lots of workflow requirements or need to go to the highest levels of scale that it makes it worth the investment,” said Slater.