Durable Functions
Branch | Status |
---|---|
dev |
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 | |
Microsoft.Azure.WebJobs.Extensions.DurableTask.Analyzers (C# only) |
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 | Public Preview | 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:
- Durable Functions: Semantics for Stateful Serverless (OOPSLA'21)
- Netherite: Efficient Execution of Serverless Workflows (VLDB'22)
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 [email protected] with any additional questions or comments.