AWS Step Functions vs Camunda for Sagas
An in-depth comparison of AWS Step Functions and Camunda 8 for saga orchestration, exploring cost structures and failure handling.

Stock photo for illustration only, not from the actual event
- AWS Step Functions is a managed state machine billed per state transition.
- Camunda 8 uses BPMN and Zeebe to handle sagas with in-flight process versioning.
- Both engines act as central coordinators for distributed transactions.
- Step Functions costs scale with failures and retry attempts.
Here is a trap I have watched smart teams walk into. They pick a saga orchestrator by comparing the two engines feature-for-feature, decide they both do sagas, flip a weighted coin, and move on. Then a year later one team is tuning Zeebe partitions at 2 am and the other is staring at a Step Functions bill that grew faster than their traffic, both wondering how the same pattern turned into such different jobs.
They do run the same pattern. A saga is a sequence of local transactions where, if step four fails, you run compensating actions to undo steps one through three, because you do not have a distributed transaction to roll back for you. Both AWS Step Functions and Camunda 8 are orchestration-style saga coordinators: a central brain that knows the steps, drives them in order, and triggers the rollback when something breaks. That part is genuinely the same.
What is not the same is what you are on the hook for. We run Camunda 8 in production for credentialing and scheduling workflows, so I have lived one of these; the other I have read the docs on and priced out for real proposals. The honest comparison is not which has more features. It is which failure is yours to own.

Stock photo for illustration only, not from the actual event
Step Functions is a managed state machine. You describe your saga in Amazon States Language, which is JSON, and AWS runs the thing. There are no brokers to operate, no cluster to size, no exporter to babysit. For a lot of teams that single sentence is the whole pitch, and it is a good one.
For long-running sagas you use Standard Workflows, and this is where the surprise lives. Standard Workflows bill per state transition. Every step your machine takes is a transition: a task, a wait, a choice. The first 4,000 a month are free, then it is $0.000025 each. Cheap, until you read the next sentence: every retry attempt is its own billed state transition. So the exact moment your dependencies are flaky and your saga is retrying and compensating, which is the moment you most need it to work, is also the moment it is transitioning the most and billing the most.
"A retry storm is a billing event."
Andrii Boyko
Architectural Context: The cost implications of retry storms in Step Functions highlight the hidden financial risks of usage-based pricing models for cloud orchestrators. When downstream dependencies fail repeatedly, orchestration costs can spike independently of actual business value. Engineering teams must carefully calibrate error-handling strategies or evaluate Express Workflows for high-volume, short-lived sagas where cost structures differ, keeping durability trade-offs in mind.
Camunda flips almost every one of those tradeoffs. You model the saga in BPMN, and compensation is a first-class construct: you attach a compensation boundary event to each activity, define its handler, and when something throws, one compensation throw event fires all the relevant handlers, in reverse, automatically. You do not hand-route rollbacks.
Second, and this is the one people underestimate until it bites: in-flight process versioning. When you fix a bug in a saga that has thousands of instances mid-flight, deploying version two does not disturb the running ones; they finish on the version they started on. When you actually need to move them, you migrate in-flight instances through Operate or the Zeebe API.
Source: Dev.to
Found something wrong in this article? Report an issue with this article
Comments
Leave a Comment