Skip to content

Commit 99ac099

Browse files
Merge pull request #298164 from hhunter-ms/dts-doc-edits
Update existing Durable Task Scheduler docs
2 parents fb43ef7 + c2ff6ac commit 99ac099

File tree

4 files changed

+178
-75
lines changed

4 files changed

+178
-75
lines changed

articles/azure-functions/durable-task-scheduler/TOC.yml

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,14 @@
2323
href: durable-task-scheduler-dashboard.md
2424
- name: Durable Task Scheduler for Durable Functions
2525
items:
26-
- name: Develop
27-
href: develop-with-durable-task-scheduler.md
26+
- name: Concepts
27+
items:
28+
- name: Work item throughput
29+
href: durable-task-scheduler-work-item-throughput.md
30+
- name: How-to guides
31+
items:
32+
- name: Develop
33+
href: develop-with-durable-task-scheduler.md
2834
- name: Durable Task Scheduler for portable SDKs
2935
items:
3036
- name: Use the portable SDKs with Azure computes
Lines changed: 55 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,60 @@
11
---
2-
title: Azure Functions Durable Task Scheduler framework options (preview)
2+
title: Azure Functions Durable Task Scheduler frameworks (preview)
33
description: Learn about the orchestration frameworks available to you in Durable Task Scheduler.
44
ms.topic: conceptual
5-
ms.date: 04/10/2025
5+
ms.date: 04/11/2025
66
---
77

8-
# Durable Task Scheduler framework options (preview)
8+
# Choose your Azure Functions Durable Task Scheduler framework (preview)
9+
10+
The Durable Task Scheduler supports three orchestration frameworks:
11+
12+
- [Durable Functions](#durable-task-scheduler-for-durable-functions)
13+
- [Durable Task SDKs, or "portable" SDKs](#durable-task-sdks)
14+
- [Durable Task Framework](#durable-task-framework)
15+
16+
The following table provides some considerations when choosing a framework.
17+
18+
|Consideration | Durable Task SDKs | Durable Functions | Durable Task Framework|
19+
|--------------| --------------| ------------------| --------------------- |
20+
|Hosting option| Azure Container Apps, Azure Kubernetes Service, Azure App Service, VMs | Azure Functions | Azure Container Apps, Azure Kubernetes Service, Azure App Service, VMs |
21+
|Language support | [.NET](https://github.com/microsoft/durabletask-dotnet/), [Python](https://github.com/microsoft/durabletask-python), [Java (coming soon)](https://github.com/microsoft/durabletask-java), [JavaScript (coming soon)](https://github.com/microsoft/durabletask-js) | [.NET](https://github.com/Azure/azure-functions-durable-extension), [Python](https://github.com/Azure/azure-functions-durable-python), [Java](https://github.com/microsoft/durabletask-java), [JavaScript](https://github.com/Azure/azure-functions-durable-js), [PowerShell](https://github.com/Azure/azure-functions-powershell-worker/tree/dev/examples/durable) | [.NET](https://github.com/Azure/durabletask) |
22+
|Official support| No | Yes | No |
23+
|Durable task scheduler emulator| Available | Available |Available |
24+
|Monitoring dashboard| Available | Available <sup>1</sup> | Available <sup>1</sup>|
25+
|[Durable Entities](/azure/azure-functions/durable/durable-functions-entities)| Not supported | Supported | Not supported|
26+
|Other supported feature(s)| Scheduler| <li>Azure Functions triggers and bindings</li> <li> Supports all backend providers </li> |Supports all backend providers|
27+
28+
*<sup>1</sup> The out-of-the-box monitoring dashboard is available only when using the Durable Task Scheduler as the backend provider.*
29+
30+
> [!NOTE]
31+
> For all **new apps**, we recommend the [portable SDKs](#durable-task-sdks) over the [Durable Task Framework](#durable-task-framework), as the SDKs follow more modern .NET conventions.
32+
33+
## Durable Task Scheduler for Durable Functions
34+
35+
When used with Durable Functions, a feature of Azure Functions, the Durable Task Scheduler works as a fully managed backend provider, persisting state data as your app runs. While [other backend providers are supported](../durable/durable-functions-storage-providers.md), the Durable Task Scheduler offers a fully managed experience, which removes operational overhead. The scheduler offers exceptional performance, reliability, and the ease of monitoring orchestrations.
36+
37+
The Durable Task Scheduler plays a similar role in the Durable Task Framework as in Durable Functions.
38+
39+
[Learn how to configure the Durable Task Scheduler for your Durable Function app.](./quickstart-durable-task-scheduler.md)
40+
41+
## Durable Task SDKs
42+
43+
The [Durable Task SDKs][todo] provide a lightweight client library for the Durable Task Scheduler. When running orchestrations, apps using these SDKs connect to the scheduler's orchestration engine in Azure. You can host apps leveraging these "portable" SDKs in various compute environments, such as:
44+
- Azure Container Apps
45+
- Azure Kubernetes Service
46+
- Azure App Service
47+
- Virtual machines
48+
49+
[Learn how to configure the Durable Task Scheduler using the portable SDKs.](./quickstart-portable-durable-task-sdks.md)
50+
51+
## Durable Task Framework
52+
53+
The [Durable Task Framework (DTFx)](https://github.com/Azure/durabletask) powers the serverless Durable Functions extension of Azure Functions. With the DTFx library, you can write long-running, persistent workflows (or *orchestrations*) in C# using simple async/await coding constructs. DTFx reliably orchestrates provisioning, monitoring, and management operations. The orchestrations scale out linearly by simply adding more worker machines.
54+
55+
[Try out the DTFx library via its GitHub repo.](https://github.com/Azure/durabletask/tree/main/samples)
56+
57+
## Next steps
58+
59+
> [!div class="nextstepaction"]
60+
> [Learn about the Dedicated SKU hosting plan](./durable-task-scheduler-dedicated-sku.md)
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
---
2+
title: Azure Functions Durable Task Scheduler work item throughput for Durable Functions (preview)
3+
description: Learn about how the Azure Functions Durable Task Scheduler provides high work item throughput for use with Durable Functions.
4+
ms.topic: conceptual
5+
ms.date: 04/10/2025
6+
---
7+
8+
# Azure Functions Durable Task Scheduler work item throughput (preview)
9+
10+
The Durable Task Scheduler was benchmarked against other storage providers, including the Azure Storage, MSSQL, and Netherite providers. The results show the Durable Task Scheduler provides better work item throughput than the other options, which translates into more orchestrator, entity, and activity tasks being processed in a given time period.
11+
12+
The following table shows the results of a series of benchmarks ran to compare the relative throughput of the Durable Task Scheduler provider vs. the default Azure Storage provider. The Azure Storage provider was chosen as the comparison because it's currently the default and most commonly used backend option for Durable Function apps.
13+
14+
:::image type="content" source="media/durable-task-scheduler/performance.png" alt-text="Bar chart comparing throughput of Durable Task Scheduler vs Azure Storage providers.":::
15+
16+
> [!NOTE]
17+
> The results shown in the chart are for an early preview version of the Durable Task Scheduler feature, configured with the lowest available scale settings. The results are expected to improve as the backend provider matures and gets closer to general availability.
18+
19+
To test the relative throughput of the backend providers, these benchmarks were run using a standard orchestrator function that calls five activity functions, one for each city, in a sequence. Each activity simply returns a "Hello, {cityName}!" string value and doesn't do any other work.
20+
21+
The intent of the benchmark is to measure the overhead of each backend without doing anything too complicated. This type of sequential orchestration was chosen due to its commonality in function apps that include Durable Functions.
22+
23+
### Test details
24+
25+
The test consists of the following criteria:
26+
27+
- The function app used for this test runs on **one to four Elastic Premium EP2 instances**.
28+
- The orchestration code was written in C# using the **.NET Isolated worker model on NET 8**.
29+
- The same app was used for all storage providers, and the only change was the backend storage provider configuration.
30+
- The test is triggered using an HTTP trigger which starts **5,000 orchestrations concurrently**.
31+
32+
After the test completes, the throughput is calculated by dividing the total number of completed orchestrations by the total execution time. The test was run multiple times for each storage provider configuration to ensure the results were consistent.
33+
34+
This benchmark showed that the Durable Task Scheduler is roughly **five times faster** than the Azure Storage provider. Your results might vary depending on:
35+
36+
- The complexity of your orchestrations and activities
37+
- The number of orchestrations running concurrently
38+
- The size of the data payloads being passed between orchestrations and activities
39+
- Other factors such as the virtual machine size.
40+
41+
> [!NOTE]
42+
> These results are meant to provide a rough comparison of the relative performance of the storage provider backends at the time the test was run. These results shouldn't be taken as definitive.

0 commit comments

Comments
 (0)