Instaclustr Adds Managed Cadence to Its Platform
Instaclustr, a platform provider of managed open source database, pipeline and workflow applications delivered as a service, this week introduced Instaclustr Managed Cadence on the Instaclustr Platform.
Instaclustr, which NetApp just announced its intent to acquire, helps organizations deliver applications at scale by managing their open source data infrastructure.
What Is Cadence?
Cadence, developed and open sourced by Uber, is a workflow engine that simplifies the development of complex long-running automated business processes at scale. It is particularly suited for use in microservices-based architectures where multiple service calls must be coordinated over time to achieve a business outcome, Instaclustr said.
Uber created Cadence because the Kafka-based architecture it was using became overly complex and replacing it with Cadence meant that integration logic could be directly expressed in simple-to-read code.
Cadence and the Instaclustr Platform
Ben Slater, Chief Product Officer at Instaclustr, said the company is uniquely positioned to provide fully managed Cadence due to its dependencies on Apache Cassandra, Apache Kafka and OpenSearch — three technologies Instaclustr has extensive expertise and experience in operating at the highest levels of availability and performance.
The Instaclustr Platform is a managed platform for scalable open source technologies, Slater said. In particular, Instaclustr offers Apache Cassandra, Apache Kafka, OpenSearch, Redis, Postgres, Apache Zookeeper and now, Cadence. The platform provides automated provisioning, monitoring and operations.
Cadence and Workflows
“Cadence is a rare thing in the technology space. It is something that, in my opinion, provides an unequivocally better way to implement a very common class of use case: workflow or service orchestration-type problems,” Slater told The New Stack. “Cadence is better than alternative or legacy solutions in this space” for several reasons including that it lets developers work directly in the coding languages they are familiar with, he said.
In addition, because Cadence workflows are implemented in standard code, they can utilize any existing services without any special integration work being required. This code can be written in a very simple way, which allows developers to easily understand the logic of their workflow, Slater said.
Moreover, “the built-in capabilities of Cadence, along with the logic structures it imposes on your code, have been shown to dramatically improve developer productivity for many use cases,” he said.
Developers at Instaclustr have been using Cadence for about nine months and have wholeheartedly adopted it, Slater said.
“Cadence offers a tremendously inviting solution for organizations with microservices-based architectures that need to orchestrate business flows that require eventual consistency and liveness guarantees across their microservices,” said Emrah Seker, a senior staff software engineer at Uber, in a statement. “As a fault-tolerant stateful code platform, Cadence sorts out the challenging nuances of these distributed systems while allowing application developers to focus on easily expressing complex business logic as code.”
Takes Care of Two Things
Cadence basically takes care of two things for users without adding any complexity to their code — handling potential failures and the infrastructure for scaling, Slater said.
For instance, in Cadence terminology, Workers are the client applications that implement your business logic. They are similar to producers and consumers in the Apache Kafka world, Slater explained.
“Workers implement two types of business logic: Workflows and Activities,” he said. “Activities are the ‘doing’ steps in your logic — calling an external service, writing a file to disk, anything that is non-deterministic or has the potential to fail. Workflows have the logic of deciding which activities to implement in what order. Workflow logic has to be entirely deterministic with a given set of inputs and activity results.”
However, with Cadence, you get a proxy/stub for workflows and activities code which allows Cadence to transparently inject itself when these things are executed, Slater explained. Cadence then uses an event-sourcing pattern to save the output of each activity execution and replay this output through the deterministic workflow code to recreate state when it is necessary to recover through an interruption.
“Cadence also takes care of distributing the actual execution of the work between multiple workers,” Slater noted. “As the workers use an optimized polling approach to get new work, new workers starting up is a very simple process and doesn’t require network connectivity from the Cadence service back to the worker processes.”
Key Features in Managed Cadence
Meanwhile, key features of Instaclustr’s Managed Cadence offering 99.95% availability SLAs for Cadence operations, automated provisioning of Cadence, including required Apache Cassandra (or PostgreSQL for smaller environments), Apache Kafka, and OpenSearch clusters on the Instaclustr Platform, and discounted pricing for Apache Cassandra, Apache Kafka, and OpenSearch clusters.
In addition, Instaclustr Managed Cadence users get:
- Vertical and horizontal scaling through the Instaclustr’s Console, API, or Terraform provider
- Available on AWS, Azure, GCP, or running in private infrastructure (including on-prem)
- 24/7/365 monitoring and expert support
- SOC 2-certified security
Under New Management
“Cadence is a very powerful system but to be able to operate at the scale and reliability it targets, it needs to build on existing systems,” Slater said. “In particular, you need a database. Apache Cassandra, PostgreSQL, and others are supported, and if you are using all the features of Cadence, you also need Apache Kafka and OpenSearch or Elasticsearch for Cadence to use.”
Setting up a production-ready architecture of all this stuff is a major project in itself, and the Instaclustr Managed Platform takes care of that.
“With the managed platform, you can have a full, production-ready architecture up and running in under half an hour,” Slater said.
Instaclustr Managed Cadence is available for production usage on AWS, GCP and Azure, or for customers to run on their own cloud or on-premises infrastructure. Organizations can try Instaclustr Managed Cadence by signing up via the Instaclustr console.