Skip to content

Add Durable Task Scheduler skill#919

Merged
tmeschter merged 27 commits intomicrosoft:mainfrom
greenie-msft:add-dts-skill
Mar 4, 2026
Merged

Add Durable Task Scheduler skill#919
tmeschter merged 27 commits intomicrosoft:mainfrom
greenie-msft:add-dts-skill

Conversation

@greenie-msft
Copy link
Contributor

Adds a new reference skill for the Durable Task Scheduler enabling Copilot to guide users through building reliable, fault-tolerant workflows on Azure.

The skill covers:

Framework selection (Durable Functions vs. Durable Task SDKs)
Local development with the DTS emulator
Workflow patterns: chaining, fan-out/fan-in, async HTTP, monitor, human interaction, and saga
Orchestration determinism rules and replay-safe logging
Azure deployment with Bicep and managed identity configuration
Error handling and retry policies

Copilot AI review requested due to automatic review settings February 13, 2026 18:14
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new Azure Prepare reference document for Durable Task Scheduler (DTS) to help guide users in building durable, fault-tolerant workflow orchestrations on Azure.

Changes:

  • Introduces a new durable-task-scheduler.md reference covering DTS fundamentals, local emulator setup, workflow patterns, and determinism rules.
  • Includes example snippets for .NET and Python (starter, patterns, logging, retry).
  • Adds Azure provisioning guidance including CLI, Bicep, and managed identity role assignment.

Copilot AI review requested due to automatic review settings February 13, 2026 23:25
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.

greenie-msft added a commit to greenie-msft/GitHub-Copilot-for-Azure that referenced this pull request Feb 26, 2026
…nd Bicep options

- Change AuthorizationLevel from Anonymous to Function in all 4 language examples
- Fix 'QuickStarts' capitalization to lowercase 'quickstarts'
- Comment out Bicep Option B (UAMI) to prevent deploying both identity options
Copilot AI review requested due to automatic review settings February 26, 2026 18:52
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.

Copilot AI review requested due to automatic review settings February 26, 2026 21:10
greenie-msft added a commit to greenie-msft/GitHub-Copilot-for-Azure that referenced this pull request Feb 26, 2026
…nd Bicep options

- Change AuthorizationLevel from Anonymous to Function in all 4 language examples
- Fix 'QuickStarts' capitalization to lowercase 'quickstarts'
- Comment out Bicep Option B (UAMI) to prevent deploying both identity options
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.

Copilot AI review requested due to automatic review settings February 26, 2026 21:36
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 5 out of 5 changed files in this pull request and generated 4 comments.

Comments suppressed due to low confidence (3)

plugin/skills/azure-deploy/references/recipes/azd/durable-task-scheduler-deploy.md:19

  • Callout formatting here (> **💡 TIP**:) is inconsistent with other AZD recipe docs in this repo (e.g., > 💡 **Note:**, > 💡 **Tip:**, > ⚠️ **Important:**). Consider switching to the same callout style for consistency and easier scanning.
> **💡 TIP**: Start with `consumption` for development and variable workloads. Switch to `dedicated` when you need consistent, high-throughput performance.

plugin/skills/azure-deploy/references/recipes/azd/durable-task-scheduler-deploy.md:109

  • The RBAC scope example uses <sub-id>/myRG style placeholders, which differs from placeholder conventions used in other Azure CLI snippets in this repo (e.g., SUB, RG, PRINCIPAL_ID). Standardizing the placeholders (and using a consistent style throughout this doc) will make the instructions easier to apply.
# Grant access to scheduler
az role assignment create \
    --assignee $PRINCIPAL_ID \
    --role "Durable Task Data Contributor" \
    --scope /subscriptions/<sub-id>/resourceGroups/myRG/providers/Microsoft.DurableTask/schedulers/my-scheduler

plugin/skills/azure-prepare/references/services/durable-task-scheduler.md:24

  • Callout formatting (> **💡 TIP**: / > **⚠️ NOTE**:) is inconsistent with the common style used across the repo’s references (> 💡 **Tip:**, > ⚠️ **Important:**, etc.). Consider normalizing these callouts for consistency and to avoid multiple variants of the same pattern.
> **💡 TIP**: Use Durable Functions for serverless with built-in triggers. Use Durable Task SDKs for hosting flexibility.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 5 out of 5 changed files in this pull request and generated no new comments.

Copilot AI review requested due to automatic review settings February 26, 2026 23:00
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 11 out of 11 changed files in this pull request and generated 5 comments.

greenie-msft and others added 12 commits March 3, 2026 16:49
- Split monolithic durable-task-scheduler.md into directory:
  README.md (overview hub), dotnet.md, python.md, java.md,
  javascript.md, bicep.md
- Add version discovery notes to all language files
- Fix commented-out Bicep in bicep.md connection string section
- Update durable.md to recommend DTS as best-practice backend
- Remove UAMI sections from deploy recipe, simplify to SAMI only
- Fix deploy recipe: add Bicep param declarations, use .azure/plan.md
- Align Python host.json to use durabletask-scheduler + extension bundle
  (matching Java/JS); add note explaining .NET uses azureManaged via NuGet
- Add explanatory note in dotnet.md about azureManaged vs durabletask-scheduler
- Define 'input' variable in dotnet.md error handling snippet
- Add logger field definition in java.md replay-safe logging snippet
- Convert JS SDK section from ESM imports to CommonJS require() with
  async main() wrapper for consistency with rest of file
- Move Learn More sections to top of each language file
- Standardize all files on DURABLE_TASK_SCHEDULER_CONNECTION_STRING
  with TaskHub embedded in connection string (replaces DTS_CONNECTION_STRING
  + TASKHUB_NAME in dotnet.md and bicep.md)
- Add Workflow & Orchestration category in research.md and architecture.md
- Add az extension install instruction for durabletask CLI
- Update troubleshooting references in README.md and deploy recipe
Assign Durable Task Data Contributor role to the deploying user's identity
so they can access the DTS dashboard in the Azure portal. Without this,
the dashboard returns 403 Forbidden.

Reference: https://github.com/Azure-Samples/Durable-Task-Scheduler/blob/main/samples/infra/main.bicep#L81
- Fix malformed markdown table in architecture.md (separator and data row merged)
- Add TaskHub=default to local emulator connection string in README.md
The DTS deployment guidance in azure-deploy was redundant with the Bicep
patterns already in the azure-prepare DTS skill docs. Removed:
- durable-task-scheduler-deploy.md recipe file
- Reference line from azure-deploy SKILL.md
- 'Invoke azure-deploy' pointers from DTS README.md and bicep.md
…cheduler as the default Durable Functions backend

- Update selection.md: route durable to full recipe with DTS instead of source-only
- Update composition.md: move durable from source-only to full recipe with DTS backend
- Rewrite recipes/durable/README.md: replace Azure Storage backend with DTS
- Add recipes/durable/bicep/durable-task-scheduler.bicep: scheduler + task hub + RBAC module
- Add durable-task-scheduler test in azure-prepare integration tests
- Add durable-task-scheduler-deploy test in azure-deploy integration tests
…PR feedback and make changes so that DTS is always the selected durable backend
Copilot AI review requested due to automatic review settings March 4, 2026 00:51
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 19 out of 19 changed files in this pull request and generated 4 comments.

Copilot AI review requested due to automatic review settings March 4, 2026 01:01
paulyuk
paulyuk previously approved these changes Mar 4, 2026
Copy link
Member

@paulyuk paulyuk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Touches a number of files but I think we need to because this is a new scenario for orchestration that can be used with all the host app compute services. The changes are correct and look safe.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 19 out of 19 changed files in this pull request and generated 2 comments.

Comments suppressed due to low confidence (1)

plugin/skills/azure-prepare/references/services/durable-task-scheduler/bicep.md:95

  • The connection string example orders fields differently than other DTS docs in this PR and the durable-task-scheduler Bicep module output. Since these strings are meant to be copy/paste templates, align the field order across docs (and ideally match the module output) to avoid confusion when troubleshooting.
{
  name: 'DURABLE_TASK_SCHEDULER_CONNECTION_STRING'
  value: 'Endpoint=${scheduler.properties.endpoint};TaskHub=${taskHub.name};Authentication=ManagedIdentity;ClientID=${uamiClientId}'
}

@greenie-msft greenie-msft requested a review from tmeschter March 4, 2026 18:04
@tmeschter tmeschter merged commit d621640 into microsoft:main Mar 4, 2026
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants