Durable Functions packages, extensions, and SDKs overview

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:

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