AWS Lambda Durable Functions: What They Are and When to Use Them
AWS Lambda Durable Functions represent a significant evolution in serverless application development, introduced at AWS re:Invent 2025. This new capability enables developers to build reliable, multi-step applications, that can run for extended periods, without paying for idle compute time while waiting for external events or human decisions.
In this article, we'll cover what they are, when you should use them, and how they compare with AWS Step Functions to help you choose the right orchestration tool for your serverless applications.
What Are Lambda Durable Functions?
Lambda Durable Functions are regular Lambda functions enhanced with stateful execution capabilities. They allow you to write complex, long-running workflows directly in your application code using familiar programming languages, rather than defining workflows in a separate orchestration language.
The key innovation lies in automatic checkpointing. As your function executes, AWS Lambda automatically saves progress at strategic points. If your workflow needs to wait for an external event, such as a webhook callback, a manual approval, or a scheduled delay, the function pauses without consuming compute resources. When the awaited event occurs, execution resumes from the last checkpoint with full context preserved.
This approach embeds orchestration logic directly into your Lambda code, eliminating the need to manage state manually or architect separate state management systems. The result is a serverless-first approach that reduces operational overhead while maintaining the scalability and pay-per-use economics that make serverless attractive.
When to Use Durable Functions
Lambda Durable Functions excel in specific scenarios where application logic naturally involves multiple steps with waiting periods:
AI and Machine Learning Workflows - Orchestrating multi-stage AI pipelines where each step might involve model inference, data transformation, or human review. The ability to pause between stages without incurring costs makes this particularly economical for batch processing scenarios.
Order Processing and E-commerce - Managing order fulfillment workflows that span inventory checks, payment processing, shipping coordination, and customer notifications. These workflows often involve waiting for external system responses or scheduled delivery windows.
Approval and Human-in-the-Loop Processes - Building loan applications, expense approvals, or content moderation systems where workflows must pause for human decisions before proceeding. The year-long execution window accommodates even the most extended approval cycles.
Event-Driven Application Logic - Coordinating complex business processes that respond to multiple events over time, such as customer onboarding journeys, subscription lifecycle management, or multi-step data processing pipelines.
Application-Centric Orchestration - When your workflow logic is tightly coupled with your application code and benefits from being expressed in the same programming language as the rest of your business logic.
How Durable Functions Compare with Step Functions
Both Lambda Durable Functions and AWS Step Functions solve the problem of orchestrating multi-step workflows, but they approach it from fundamentally different philosophical and architectural standpoints.
Architectural Philosophy
Step Functions is built for infrastructure orchestration. It excels at coordinating disparate AWS services, providing a visual workflow designer, and offering a declarative approach using Amazon States Language (ASL). The workflow definition lives separately from your application code, making it ideal for workflows that need to be understood and modified by operations teams or non-technical stakeholders.
Durable Functions, by contrast, are optimized for application orchestration. The workflow logic lives within your Lambda function code, written in your preferred programming language. This code-first approach makes it natural for developers who want to keep orchestration logic alongside business logic, use familiar debugging tools, and leverage existing programming constructs like loops, conditionals, and error handling.
Developer Experience
With Step Functions, you define workflows in ASL—a JSON-based state machine definition language. While powerful and expressive, this requires learning a new syntax and switching contexts between your application code and workflow definitions. Local testing typically involves additional tooling or mocking frameworks.
Durable Functions let you write workflows as regular code. If you know how to write a Lambda function, you already know how to write a durable function. The workflow logic uses standard programming constructs, making it more intuitive for developers and easier to test locally using familiar development tools.
Visibility and Monitoring
Step Functions provides superior visual representation of workflows. The built-in graphical interface shows execution flow, making it easy for stakeholders to understand complex processes at a glance. This visualization is particularly valuable for compliance, auditing, and operational monitoring.
Durable Functions trade some of this visual clarity for code simplicity. While you can still monitor executions through CloudWatch and Lambda insights, the workflow structure isn’t as immediately apparent to non-technical observers.
Use Case Alignment
Choose Step Functions when you need to:
Orchestrate multiple AWS services (Lambda, ECS, Glue, etc.)
Provide workflow visibility to non-technical stakeholders
Build workflows that benefit from visual design and monitoring
Implement complex branching, parallel execution, or error handling patterns that benefit from declarative definition
Maintain clear separation between orchestration and business logic
Choose Durable Functions when you need to:
Keep workflow logic tightly integrated with application code
Leverage existing programming language features and libraries
Simplify development by avoiding context switching between code and ASL
Build workflows where the orchestration is primarily application logic rather than service coordination
Optimize for developer velocity and code maintainability within Lambda
Cost Considerations
Both services charge only for active execution time, not idle waiting periods. However, the pricing models differ slightly. Step Functions charges per state transition, while Durable Functions follow Lambda’s standard pricing model with additional charges for state persistence. For workflows with many state transitions, Durable Functions may offer cost advantages. For workflows coordinating many AWS services, Step Functions’ integration capabilities may provide better value.
Conclusion
Lambda Durable Functions and Step Functions aren’t competitors—they’re complementary tools in your serverless toolkit. Durable Functions shine when you want to write workflow logic as code within your Lambda functions, keeping orchestration close to your application logic. Step Functions excel when you need to coordinate multiple AWS services with clear visual representation and operational oversight.
The choice ultimately depends on your team’s preferences, the nature of your workflows, and whether you value code-centric development or service-centric orchestration. Many organizations will find themselves using both, selecting the right tool for each specific use case.

