Skip to main content
Ender Demirkaya
Senior Manager at Uber, Cadence. Author of the Software Engineering Handbook
View all authors

Cadence in 2025

· 12 min read
Ender Demirkaya
Senior Manager at Uber, Cadence. Author of the Software Engineering Handbook

Hi Cadence Community,

At the beginning of every year, we share about what happened in the last year. Here’s a look back at our 2025 improvements, explaining what’s new, and how you can use them. 2025 was one of the most exciting years for the Cadence project and we hope this will only get better in the future. Here are some highlights:

Cadence joins CNCF

cadence-joins-cncf.png

As a sign of our open source commitment, the Cadence project joined the Cloud Native Computing Foundation under the Linux Foundation. This is a very exciting moment for the entire project where we are moving to an entirely new plane. Similarly, we opened our governance to our users who would like to be a part of the journey.

Our ambition is to help everyone build complex distributed systems as easily as possible and cover as many overheads in such processes as possible so engineers can get maximum value out of the Cadence project. While there’s still a lot to do to achieve that, this milestone brings us one big step closer.

Cadence is a sandbox project at the moment where we receive a lot more visibility. However, we need our users’ help to reach the incubation level where the support we receive will significantly improve. This will happen if we can show the logos of the companies using Cadence in ADOPTERS list. This will also improve your experience with Cadence by having more modern features, support and non-functional improvements.

Cadence Database Cost

cadence-cassandra-cost.png We are aware that platforms like Cadence aren't the cheapest option for some users. The main source of this cost comes from underlying DB costs. In 2025, a series of efficiency and reliability improvements helped us reduce our DB cost by 60%, which essentially made the total cost of Cadence cheaper than its cost in 2022 with much lower traffic. Note that, we have observed these improvements with Cassandra instances but other DB technologies should show similar gains.

Similar studies were published by our partners at Instaclustr by NetApp®, selling managed Cadence as a solution.

We have many more improvements planned for 2026, which we expect to bring similar savings. Stay Tuned!

Adaptive Tasklist Partitioning

adaptive-tasklist-partitioning.png TaskLists are a FIFO queue used to dispatch tasks to Workers. They are hosted in our matching service. By default a single tasklist lives in a single matching host. However, if a tasklist's traffic is large enough, our users used to define how many partitions they would need to have. Upon their changing traffic, they needed to keep adjusting their partitions as well.

As it reads, that’s not the most efficient way to manage thousands of domains. Even with a single domain, this model required Cadence users to learn internal limits about Cadence services and came with unpleasant operational load. Even when this is well-established, manual tuning was almost guaranteed to be suboptimal: you’d either be underutilized or you would accumulate tasks due to not being able to keep up with them.

Therefore, we made our partitioning logic completely adaptive where the number of TaskList partitions automatically grow and shrink based on incoming traffic, providing the perfect scale. We want Cadence to be as adaptive and easy to operate as possible.

History Queues v2

history-queues-v2.png

eliminating-noisy-neighbor-effect.png History service is the ledger service for Cadence workflows. That’s where the initiation or completion records of the tasks are kept and the next tasks are scheduled for the matching service to dispatch.

Up until this year, the queues were only split based on shards that cross-cut all the domains in that cluster. This meant noisy neighbors with bursty traffic or with any anti-pattern behavior would impact other domains in the cluster. They would notice latency increase or other types of degradation.

To avoid this behavior, we implemented new flexible queues where they can be explicitly allocated for certain domains or they could adaptively isolate domains with higher traffic from others so other domains wouldn’t starve. This feature not only eliminated the noisy neighbor issues in history but also reduced the overall task processing latencies.

We have some clusters where we host over 2000 domains. Features like this especially matter for such clusters and they allow us to provide high multitenancy in a safe and efficient way.

Active-Active Domains

active-active-domains.png Cadence domains have been running in active-passive mode for years, which has been limiting for use cases requiring processing in all clusters (regions). Since late 2025, Cadence can process domains in both regions and distribute traffic based on users’ preferences within domains. This change will make your domains more flexible and more efficient due to utilizing resources in all regions.

The best part of this feature is that switching to active-active mode won’t require any migration. All domains will support active-active by default and without breaking existing behavior. While users setting “cluster attributes” while starting their workflows will be able to benefit from active-active processing; leaving these parameters empty will retain the old active-passive behavior.

This feature is currently implemented for Cassandra and the support for other DBs will come in Q1. We will also release a blog explaining how this improved related use cases, a wiki explaining how to use it and a codelab to help you try out.

Cadence Python SDK

cadence-python-sdk.png This is by the far the most requested feature for a long time. We know many potential Cadence users had to go with alternate solutions just because we didn’t have the Python SDK. To address this issue, since the end of 2025, we have been supporting the Python language! Currently basic workflows can be written in Python and full parity with Golang is expected to be achieved in some time during Q1. Our Python package is released in PyPi.

Cadence Worker Auto-scaler

cadence-worker-auto-scaler.png Similar to the adaptive tasklist partitioning mentioned above, users won’t need to tune their workers any more. In the past, our users needed to set the number of pollers by themselves. However, in online systems the traffic is never a straight line. Users cannot constantly add or reduce the number of pollers manually.

Therefore, this is now automated! It not only helps users have enough resources for their traffic but also makes sure that they don’t waste their resources. Especially for users using auto-scalers based on containers’ CPU usage, this feature will make sure that users always operate at the maximum utilization they define.

Replication Cache

replication-lag-improvements.png

replication-cache.png

Cadence orchestrates its own replication, which allows us to seamlessly migrate from one DB technology to another, one cloud provider to another etc. The way it was working in the past was that the replication messages would be generated by reading workflow tasks from the database.

Given that replication is a continuous process between Cadence regions, we implemented a cache to keep the replication messages in memory until a replication poll message arrives so we could eliminate the DB calls due to replication. This came with a 99%+ cache hit rate, which almost entirely eliminated the DB calls due to replication, which used to be more than 20% of all DB calls. Another big benefit was for replication latencies; since we can directly serve the messages from memory, our replication latencies dropped from 13s to 2s.

Codelabs, Video Tutorials, Blogs and new Wikis

codelabs-demos-wikis.png Another area we have been focusing on was user education. This is needed for both Cadence basics or new features. For every major new feature, we are now releasing Blogs explaining the impact of the feature, wikis explaining how to use, codelabs going over instructions and videos showing our developer advocate going over the codelab so you won’t get confused or stuck at a certain step.

Cadence Web v4

cadence-web-v4.png

Earlier in the year, we released cadence-web v4. It was a complete rewrite from the previous version. We migrated from Vue.js to React, completely redesigned the UI, added multi environment support, and improved the performance significantly.

With the new changes, extending cadence-web became much simpler as you can see with the changes mentioned below.

New History Page

new-history-page.png Meet the new Workflow History page in the Cadence UI! It offers significant enhancements in performance, visibility, and navigation. Key improvements include much faster loading, color-coded events, and a new navigation bar, making it much simpler to locate workflow failures and stuck activities.

Workflow Actions in Cadence-Web

workflow-actions.png Cadence-Web is our web component which provides a user interface to view and manage Cadence workflows. One of the many features we added to cadence-web in 2025 was the ability to directly start or signal workflows from UI. This especially helped with running the initial start command for the cron workflows or internal tools waiting for user inputs.

Workflow Diagnostics

workflow-diagnostics.png One of the top question categories in our support channels is about diagnosing workflow failures. Most of the issues are repeating patterns that can be easily identified by experienced Cadence users. However, this may not be that obvious to new users.

In 2025, we decided to proactively show issues about workflows in the workflow summary tab where users can click details to learn more. This both reduced the number of support questions we were receiving and also helped our users self-resolve their issues a lot faster.

There’s a codelab and the tutorial video available for this feature if you’d like to try!

Advanced Queries with Auto-complete

visibility-autocomplete.png Cadence provides a simple SQL language to filter and list workflows. However, it’s quite possible to forget about the keywords and the syntax. In the past, you would need to visit our wikis to remember what they were to complete your query. Now we provide an autocomplete directly in the query field to help you remember!

Custom Workflow Controls

custom-workflow-controls.png A very common case for some domains is to have separate documentation for their domains and workflows where the documentation describes what workflow to start or signal. Then the user would need to copy+paste the command to a terminal. You could use this for triggering a large data pipeline, training a new AI model, starting an experiment with new parameters, starting an oncall diagnostics, executing a runbook action. You decide. Cadence allows you to take action directly from your documentation.

Currently this is supported in workflow queries but this will be extended to other areas. It’s the familiar markdown format with an extension to support adding custom start and signal buttons. It’s implemented in a secure way as it doesn’t allow running javascript code inside the markdown doc. Be on the lookout for the codelab for this feature!

What's Coming in 2026?

Thanks to past investments in building a solid foundation for Cadence, we are switching our focus to the following areas:

Investing in Community

Our community has been growing faster recently and we are receiving regular contribution requests. We are aware that investing in our community will be the only way to scale and build the features that our community asks. Both for users and contributors, we will have more channels and easier ways to collaborate.

Are you a Cadence user but you wish a specific feature was supported? Are you considering using Cadence but not having a specific feature is a deal-breaker? Please let us know. Our goal is to have Cadence to handle all the overheads regarding orchestration and distributed systems. Especially if this problem is already solved somewhere else, we are happy to build and adapt them in Cadence.

Driving Innovation and Modernization

We are aiming to address the changing needs of our industry, including but not limited to areas such as agent orchestration. Some already existing features need upgrades to improve their usability, flexibility and overall experience, which will also be a part of this focus.

Improving Usability & Operability

Ease of use has been an area of growth for us for years. We are planning to

  • Revisit the entire documentation
  • Make more parameters adaptive
  • Intuitive Web: warnings about system/domain/workflow health with UI based actions
  • Operate everything from the web

Preparing for V2

Cadence has been going through heavy refactors within the last couple of years, allowing us to ship the improvements above. This will continue with the goal of preparing for a major V2 upgrade. Some of these improvements are currently opt-in as they require some sort of migration. In V2, many of them will be turned on by default.

Questions?

While this is an awesome list of improvements, this is only the highlights of what we have built in 2025. Watch our GitHub repos to be aware of new changes and follow us from our communication channels LinkedIn, YouTube, X

Do you need help with using them? Feel free to contact us.

Help Cadence Reach CNCF Incubation

· 3 min read
Ender Demirkaya
Senior Manager at Uber, Cadence. Author of the Software Engineering Handbook

Help Cadence Reach CNCF Incubation

Cadence is an open-source workflow orchestration platform. Our community currently includes more than 150 companies and it continues to grow. Many critical services are built with Cadence as it simplifies complex systems by separating business logic from its distributed system concerns.

Recently, Cadence was donated to Cloud Native Computing Foundation (CNCF), which is a major step towards making it an industry standard and receiving support from all around the world. In other words, the Cadence project is now a Linux Foundation project, licensed under Apache v2 which allows anyone to use and extend it freely. The project operates with open, merit-based governance, giving everyone the opportunity to help shape its future.

Currently, Cadence is a Sandbox project in CNCF’s maturity levels, which is the entry stage in this journey. We are preparing to apply for Incubation status, which will significantly expand the visibility, support, and adoption the project receives. To achieve this, we need to show strong adoption across a diverse range of companies and industries. Adding your company logo and a short description of your use cases in ADOPTERS.md helps objectively demonstrate this in a concrete, measurable way.

If your company depends on Cadence, reaching the Incubating level benefits you as well. Like many open-source projects, this creates a positive feedback cycle:

  • Open sourcing a project attracts more adopters,
  • More adopters bring visibility and contributors,
  • More contributors keep the project reliable, efficient, and relevant, enabling faster feature delivery,
  • Well-maintained projects attract even more adopters, and the cycle continues…

In short, we are asking for your help so we can support you better.

It’s Simple to Contribute

Adding your company is quick:

  1. Open a pull request to update ADOPTERS.md, follow the instructions there.
  2. Include your company name, logo (if possible), and a short description of how you use Cadence.

Each adopter listed shows that Cadence is being trusted and used in production. This encourages new users to adopt Cadence and helps demonstrate the stability, reliability, and scalability of the project.

Your contribution helps the entire community move forward.
Thank you for supporting Cadence and helping us grow within the CNCF ecosystem.

Cadence Joins CNCF (Cloud Native Computing Foundation)

· 4 min read
Ender Demirkaya
Senior Manager at Uber, Cadence. Author of the Software Engineering Handbook

using.png

We’re proud to announce that the Cadence project has joined the CNCF (Cloud Native Computing Foundation)®, the open-source foundation that hosts and maintains critical components of modern cloud-native infrastructure including Kubernetes®, Prometheus®, and Envoy® under the Linux Foundation®.

Cadence is an open-source, fault-tolerant, and highly scalable workflow orchestration engine created at Uber to help developers build and run resilient applications. It’s been powering thousands of use cases at Uber and other companies. By managing distributed state, retries, scaling, and failure recovery, Cadence enables teams to focus on business logic rather than infrastructure complexity. Mission-critical applications across industries including finance, e-commerce, healthcare, and transportation depend on Cadence.

Joining CNCF marks a significant milestone for the Cadence project, emphasizing the project’s open source commitment. With its open governance, companies can join as maintainers and help improve long-term confidence. Increased transparency in roadmap and execution make upcoming features predictable.

Since its inception, the Cadence project’s ecosystem has reached over 150 companies and counting. Partners like NetApp® Instaclustr adopted the project and have offered it as a managed solution at scale. With CNCF’s support, the project aims to further its mission of simplifying distributed service development while delivering production-grade reliability at scale.

In the last several years, Cadence has made significant investments in its scalability, reliability, multitenancy, deployment safety, and portability, laying the necessary foundation to build enterprise-level features at scale, efficiently and reliably. It’s now a great time to build those features together, and we invite anyone to be a part of this future. Especially in the era of AI, Cadence will play a crucial role in durable orchestration.

What’s Changing in the Community?

We’ll stop using our Slack workspace (uber-cadence.slack.com). Going forward, we’ll use CNCF’s Slack workspace (cloud-native.slack.com). Join this new workspace using Community Inviter and join the #cadence-users channel to contact us.

Our website (cadenceworkflow.io) and our GitHub org (github.com/cadence-workflow) will stay the same and we’ll continue sharing new features from there.

We’ll publish our roadmap at https://github.com/orgs/cadence-workflow/projects. We’ll hold community meetings to brainstorm about and prioritize upcoming features. Project tracking will move from internal tools to GitHub. Projects will have dedicated issues so you can track pull requests, updates, and timelines.

We’ll organize regular meetups (in-person and virtual) to showcase new features, have discussions, and learn from valuable guests.

For maintainers, we’ll hold regular meetings to update each other. If you’d like to become a maintainer, please contact us on Slack so we can help with starter tasks and larger projects as you gain experience.

How to Become a Maintainer?

We invite companies that are already using Cadence, or plan to adopt it in the future, to become official maintainers and help shape this critical piece of infrastructure for your organization.

With this important milestone, we are prioritizing the addition of new maintainers and working to make the onboarding experience as smooth as possible. Our goal is to scale the project responsibly across all areas including development, decision making, efficiency, modernization, prioritization, and more.

If you are interested, please reach out to us in the #cadence-users channel mentioned above, and we will help you find suitable projects to contribute to. If you already have something in mind, feel free to open an issue in the appropriate repository under github.com/cadence-workflow.

Acknowledgments

CNCF® and the CNCF logo design are registered trademarks of the Cloud Native Computing Foundation.

Envoy®, Kubernetes®, Prometheus®, and their logos are registered trademarks of The Linux Foundation® in the United States and other countries. No endorsement by The Linux Foundation is implied by the use of these marks.

Instaclustr® and NetApp® are trademarks of NetApp, Inc.

2024 Cadence Yearly Roadmap Update

· 17 min read
Ender Demirkaya
Senior Manager at Uber, Cadence. Author of the Software Engineering Handbook

Introduction

If you haven’t heard about Cadence, this section is for you. In a short description, Cadence is a code-driven workflow orchestration engine. The definition itself may not tell enough, so it would help splitting it into three parts:

  • What’s a workflow? (everyone has a different definition)
  • Why does it matter to be code-driven?
  • Benefits of Cadence

What is a Workflow?

workflow.png

In the simplest definition, it is “a multi-step execution”. Step here represents individual operations that are a little heavier than small in-process function calls. Although they are not limited to those: it could be a separate service call, processing a large dataset, map-reduce, thread sleep, scheduling next run, waiting for an external input, starting a sub workflow etc. It’s anything a user thinks as a single unit of logic in their code. Those steps often have dependencies among themselves. Some steps, including the very first step, might require external triggers (e.g. button click) or schedules. In the more broader meaning, any multi-step function or service is a workflow in principle.

2023 Cadence Community Survey Results

· 4 min read
Ender Demirkaya
Senior Manager at Uber, Cadence. Author of the Software Engineering Handbook

We released a user survey earlier this year to learn about who our users are, how they use Cadence, and how we can help them. It was shared from our Slack workspace, cadenceworkflow.io Blog and LinkedIn. After collecting the feedback, we wanted to share the results with our community. Thank you everyone for filling it out! Your feedback is invaluable and it helps us shape our roadmap for the future.

Here are some highlights in text and you can check out the visuals to get more details:

using.png

job_role.png

Most of the people who replied to our survey were engineers who were already using Cadence, actively evaluating, or migrating from a similar technology. This was exciting to hear! Some of you have contacted us to learn more about benchmarks, scale, and ideal use cases. We will share more guidelines about this but until then, feel free to contact us over our Slack workspace for guidance.