What are Durable Functions?
Durable Functions are an extension of Azure Functions that lets you write stateful functions in a serverless environment. The extension manages state, checkpoints, and restarts for you.
The extension lets you define stateful workflows using an orchestrator function, which can provide the following benefits:
- You can define your workflows in code. No JSON schemas or designers are needed.
- Other functions can be called both synchronously and asynchronously. Output from called functions can be saved to local variables.
- Progress is automatically checkpointed when the function awaits. Local state is never lost when the process recycles or the VM reboots.
The primary use case for Durable Functions is simplifying complex, stateful coordination requirements in serverless applications. The following are some typical application patterns that can benefit from Durable Functions:
Durable Functions currently supports the following languages:
- C#: both precompiled class libraries and C# script.
- F#: precompiled class libraries and F# script. F# script is only supported for version 1.x of the Azure Functions runtime.
Durable Functions are billed the same as Azure Functions. For more information, see Azure Functions pricing.
Jump right in
You can get started with Durable Functions in under 10 minutes by completing one of these language-specific quickstart tutorials:
In both quickstarts, you locally create and test a "hello world" durable function. You then publish the function code to Azure. The function you create orchestrates and chains together calls to other functions.
The following video highlights the benefits of Durable Functions:
Because Durable Functions is an advanced extension for Azure Functions, it isn't appropriate for all applications. To learn more about Durable Functions, see Durable Functions patterns and technical concepts. For a comparison with other Azure orchestration technologies, see Compare Azure Functions and Azure Logic Apps.
We'd love to hear your thoughts. Choose the type you'd like to provide:
Our feedback system is built on GitHub Issues. Read more on our blog.