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 in all first-party Azure Functions runtime environments, such as .NET, Node.js, and Python. As such, there are multiple Durable Functions SDKs and packages for each language runtime supported. This guide provides a description of each Durable Functions package from the perspective of each runtime supported.
.NET in-process
.NET in-process users need to reference the Microsoft.Azure.WebJobs.Extensions.DurableTask package in their .csproj file to use Durable Functions. This package is known as the "WebJobs extension" for Durable Functions.
Storage providers packages:
By default, Durable Functions uses Azure Storage as its backing store. However, alternative storage providers are available as well. To use them, you need to reference their packages in addition to the WebJobs extension in your .csproj. Those packages are:
- The Netherite storage provider: Microsoft.Azure.DurableTask.Netherite.AzureFunctions.
- The MSSQL storage provider: Microsoft.DurableTask.SqlServer.AzureFunctions
Tip
See the storage providers guide for complete instructions on how to configure each backend.
Note
These are the same packages that non-.NET customers manually upgrading their extensions need to manage in their .csproj.
.NET isolated
.NET isolated users need to reference the Microsoft.Azure.Functions.Worker.Extensions.DurableTask package in their .csproj file to use Durable Functions. This replaces the "WebJobs" extension used in .NET in-process as .NET isolated projects can't directly reference WebJobs packages. This package is known as the "worker extension" for Durable Functions.
storage providers packages:
In .NET isolated, the alternative storage providers are available as well under "worker extension" packages of their own. You need to reference their packages in addition to the worker extension in your .csproj. Those packages are:
- The Netherite storage provider: Microsoft.Azure.Functions.Worker.Extensions.DurableTask.Netherite.
- The MSSQL storage provider: Microsoft.Azure.Functions.Worker.Extensions.DurableTask.SqlServer
Tip
See the storage providers guide for complete the instructions on how to configure each backend.
Extension Bundles users
Users of Extension Bundles (the recommended Azure Functions extension management mechanism for non-.NET users) simply need to install their language runtime's Durable Functions SDK. The SDKs for each first-party language are listed in the table below:
- Node (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
For PowerShell users: the standalone AzureFunctions.PowerShell.Durable.SDK module is now generally available (GA) and is recommended over the legacy SDK that is built into the Azure Functions PowerShell language worker. Going forward, the legacy SDK may not receive new features or bug fixes, and may eventually be removed from the worker. See migration guide for details on migrating to the standalone SDK.
GitHub repositories
Durable Functions is developed in the open as OSS. Users are welcome to contribute to its development, request features, and to report issues in the appropriate repositories:
| 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 |