/azure-functions-durable-extension

Durable Task Framework extension for Azure Functions

Primary LanguageC#MIT LicenseMIT

Durable Functions

Branch Status
dev Build Status

Durable Functions is an extension that helps developers build reliable, stateful apps on the Azure Functions platform.

This extension adds three new types functions to the Azure Functions family:

  • Orchestrator functions: Long-running, reliable workflow functions written in code that schedule and coordinate other functions.
  • Activity functions: Stateless functions that are the basic unit of work in a durable function orchestration.
  • Entity functions: Stateful actor-like functions that have identities and store state explicitly.

Durable Functions can run anywhere that Azure Functions can run, including in the Azure Functions "Serverless" Consumption plan, the Elastic Premium plan, on Kubernetes, or even locally for development using Visual Studio or Visual Studio Code.

📑 Official documentation 📑

For a more detailed overview, including examples of what you can do with Durable Functions, see our What is Durable Functions? article.

NuGet Packages

Durable Functions updates are published as NuGet packages.

Package Name NuGet
Microsoft.Azure.WebJobs.Extensions.DurableTask NuGet
Microsoft.Azure.WebJobs.Extensions.DurableTask.Analyzers (C# only) NuGet
Microsoft.Azure.Functions.Worker.Extensions.DurableTask NuGet

Language support

Durable Functions supports a subset of languages supported by Azure Functions:

Language Status Repo
C# Generally available - get started Azure/azure-functions-durable-extension
JavaScript Generally available - get started Azure/azure-functions-durable-js
Python Generally available - get started Azure/azure-functions-durable-python
PowerShell Generally available - get started Azure/azure-functions-powershell-worker
Java Generally available - get started Microsoft/durabletask-java

Each language has its own language-specific SDK and programming model. Regardless of which language you use, the extension in this repo must be installed to enable the Durable Functions triggers.

Samples for each SDK may be found in their respective repos, usually under a "/samples" directory. For example, the JavaScript samples may be found here.

Installation

The Durable Functions NuGet package can be referenced directly in a Visual Studio project or can be installed using the Azure Functions Core Tools command-line:

func extensions install -p Microsoft.Azure.WebJobs.Extensions.DurableTask -v <latest version on Nuget.org>

Durable Functions is also available in supported extension bundles. Note that extension bundles are only supported for non-.NET languages.

Contributing

Many features of Durable Functions have been voluntarily contributed by the community, and we always welcome such contributions. If you are interested in contributing, please take a look at our CONTRIBUTING guide.

Publications

Durable Functions is developed in collaboration with Microsoft Research. As a result, the Durable Functions team actively produces research papers and artifacts; these include:

License

This project is licensed under the MIT License.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.