Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Durable Functions is available for all first-party Azure Functions languages, including .NET, Node.js, Python, Java, and PowerShell. This article helps you find the right package to install for your language and hosting model.
In this article, extension refers to the binary that runs inside the Azure Functions host and implements the Durable Task protocol. SDK refers to the language-specific library you call in your application code. For .NET, the extension and SDK are combined in a single NuGet package.
Quick reference
The following table lists the primary Durable Functions package for each supported language and hosting model:
| Language | Hosting model | Package | Registry |
|---|---|---|---|
| .NET | In-process | Microsoft.Azure.WebJobs.Extensions.DurableTask | NuGet |
| .NET | Isolated worker | Microsoft.Azure.Functions.Worker.Extensions.DurableTask | NuGet |
| Node.js (JavaScript / TypeScript) | Extension bundles | durable-functions | npm |
| Python | Extension bundles | azure-functions-durable | PyPI |
| Java | Extension bundles | durabletask-azure-functions | Maven |
| PowerShell | Extension bundles | AzureFunctions.PowerShell.Durable.SDK | PowerShell Gallery |
The following sections provide more detail on each language, including alternative storage provider packages.
.NET in-process
Add the Microsoft.Azure.WebJobs.Extensions.DurableTask NuGet package to your .csproj file. This package (sometimes called the "WebJobs extension") contains both the Durable Functions extension and the .NET in-process SDK.
Note
These are the same packages that non-.NET customers manually upgrading their extensions need to manage in their .csproj.
.NET isolated
Add the Microsoft.Azure.Functions.Worker.Extensions.DurableTask NuGet package to your .csproj file. This package (sometimes called the "worker extension") replaces the WebJobs extension used in the in-process model.
Node.js, Python, Java, and PowerShell
Non-.NET languages use extension bundles to manage the Durable Functions extension automatically. You only need to install the Durable Functions SDK for your language:
- Node.js (JavaScript / TypeScript): The durable-functions npm package.
- Python: The azure-functions-durable PyPI package.
- Java: The durabletask-azure-functions Maven package.
- PowerShell: The AzureFunctions.PowerShell.Durable.SDK module.
Note
PowerShell users: Use the standalone AzureFunctions.PowerShell.Durable.SDK module, which is now generally available (GA). The legacy SDK built into the Azure Functions PowerShell language worker may not receive new features or bug fixes and may eventually be removed. See the migration guide for details.
Storage providers
Durable Functions uses a storage provider to persist orchestration state, entity state, and internal messages. The recommended provider is Durable Task Scheduler, an Azure-managed backend that requires no additional packages—only configuration. To get started, see Configure Durable Functions with Durable Task Scheduler.
Alternative storage providers
If you need a different backend, the following "bring your own" (BYO) storage providers are also available. For .NET apps, add the corresponding package to your .csproj in addition to your primary Durable Functions package.
The following table lists the BYO storage provider packages for each .NET hosting model:
| Storage provider | .NET in-process package | .NET isolated package |
|---|---|---|
| Azure Storage | No extra package required (built in) | No extra package required (built in) |
| MSSQL | Microsoft.DurableTask.SqlServer.AzureFunctions | Microsoft.Azure.Functions.Worker.Extensions.DurableTask.SqlServer |
| Netherite (retiring) | Microsoft.Azure.DurableTask.Netherite.AzureFunctions | Microsoft.Azure.Functions.Worker.Extensions.DurableTask.Netherite |
Warning
The Netherite storage provider is retiring. If you currently use Netherite, plan to migrate to the Durable Task Scheduler or another supported provider.
Non-.NET languages manage the extension through extension bundles, so no additional storage provider package is needed in your application project.
Tip
See the storage providers guide for complete instructions on comparing and configuring each backend.
GitHub repositories
Durable Functions is developed as open-source software. To contribute, request features, or report bugs, use the repository for your language or component:
| GitHub repository | Description |
|---|---|
| azure-functions-durable-extension | .NET in-process library and the Azure Storage storage provider |
| durabletask-dotnet | .NET isolated worker process library |
| azure-functions-durable-js | Node.js SDK |
| azure-functions-durable-python | Python SDK |
| durabletask-java | Java SDK |
| azure-functions-durable-powershell | PowerShell SDK |
| durabletask-netherite | Netherite storage provider |
| durabletask-mssql | MSSQL storage provider |