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.

Benefits

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.

Application patterns

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:

Supported languages

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.
  • JavaScript: supported only for version 2.x of the Azure Functions runtime. Requires version 1.7.0 of the Durable Functions extension, or a later version.

Durable Functions has a goal of supporting all Azure Functions languages. See the Durable Functions issues list for the latest status of work to support additional languages.

Like Azure Functions, there are templates to help you develop Durable Functions using Visual Studio 2017, Visual Studio Code, and the Azure portal.

Billing

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.

Learn more

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.

Next steps