New AWS Lambda Durable Functions – Do they replace Step Functions?
Source: Dev.to
Introduction
The serverless landscape just shifted beneath our feet. With the release of AWS Lambda Durable Functions in December 2025, Amazon introduced a feature developers have been asking for since the dawn of FaaS (Function as a Service).
Durable Functions let you write stateful, long‑running workflows entirely within your Lambda code using familiar await syntax. You can pause execution for days, weeks, or even up to a year without paying for idle compute, then resume with local state intact.
Availability – Currently exclusive to the us-east-2 (Ohio) region, with a global rollout planned for Q2 2026.
Background: Lambda vs. Step Functions
AWS Lambda and AWS Step Functions have long been the pillars of serverless architectures:
| Aspect | AWS Lambda | AWS Step Functions |
|---|---|---|
| Primary role | Raw compute for business logic | Orchestration and low‑code workflow definition |
| Typical use | Write code that does the work | Define state machines (ASL) that coordinate multiple Lambdas and services |
| Historical pain point addressed by Step Functions | “Lambda calling Lambda” anti‑pattern (brittle, hard to debug, expensive) | Managed state tracking, error handling, retries |
Step Functions introduced a configuration‑first approach with a visual editor, enabling non‑programmers or ops teams to drag‑and‑drop integrations (S3 → DynamoDB → SQS, etc.) without writing code.
Limitations of Step Functions
- Stateless between steps – large JSON payloads had to be passed around to maintain context.
- Configuration‑first barrier – debugging required cloud deployments, execution runs, console log checks, and iterative ASL JSON edits, leading to a slow feedback loop.
Functional Overlap
Both services now share several capabilities:
- Zero cost for waiting – pause execution for up to a year without paying for idle compute.
- Built‑in resilience – automatic error handling with exponential backoff and retries.
- State persistence – workflows resume exactly where they left off after a wait or crash.
Ergonomics & Development Lifecycle
AWS Lambda Durable Functions (code‑first)
- Use standard programming constructs (
if,for,try/catch). - Example of a wait in code:
# Python example
await step.sleep('7 days')
- Local debugging – unit test with Jest, Pytest, or your preferred framework; mock durable steps; set breakpoints locally.
- Share libraries, apply familiar software‑engineering patterns, and run full integration tests from a laptop (using temporary AWS credentials).
AWS Step Functions (configuration‑first)
- Visual observability – on‑call engineers can view the state‑machine graph, see which state failed, and inspect input/output data directly in the console.
- Zero‑code integration – glue AWS services together (S3 → Transcribe → DynamoDB → SES) without writing SDK calls.
- Ideal for workflows that are primarily service orchestration rather than complex business logic.
Pricing Comparison
| Service | Billing Model | Typical Cost Drivers |
|---|---|---|
| Step Functions (Standard Workflows) | $25 per 1 M state transitions | Number of transitions (e.g., loops) |
| Lambda Durable Functions | Requests + compute duration | CPU time while code is executing |
Example: High‑Throughput Loop
Workflow: Loop 10,000 times processing small items.
- Step Functions – 3 states per iteration (Task, Choice, Wait) → 30,000 state transitions. Cost scales with transition count.
- Durable Functions – Pay only for aggregate compute time of the loop. Pauses are virtually free, making the loop inexpensive compared to thousands of transitions.
Example: Long Wait + Single Action
Workflow: Wait 6 months, then send one email.
- Step Functions – Only a few transitions → very cheap.
- Durable Functions – No compute during wait, also cheap, with minimal management overhead.
When to Choose Which
| Perspective | Recommended Service |
|---|---|
| Developer‑centric (code reuse, local testing, complex logic) | AWS Lambda Durable Functions |
| Ops / Architect‑centric (visual monitoring, low‑code service orchestration) | AWS Step Functions |
Conclusion
AWS Lambda Durable Functions bring workflow orchestration into the code, offering powerful local debugging and cost advantages for compute‑heavy loops. AWS Step Functions remain the go‑to solution for visual observability and zero‑code integration of AWS services.
- If you are a developer – Durable Functions will likely cover most of your needs.
- If you are an architect or operations team – Step Functions still provides valuable visual tooling and simplicity for service‑glue workflows.
Both tools will coexist, each serving distinct use cases in the evolving serverless ecosystem.