Skip to content

Samples, quickstarts, and developer resources for Azure Durable Task Scheduler — build reliable, fault-tolerant workflows with Durable Functions and Durable Task SDKs.

License

Notifications You must be signed in to change notification settings

Azure-Samples/Durable-Task-Scheduler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

138 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Azure Durable Task

Build reliable, fault-tolerant workflows that survive any failure.

License: MIT Docs


Table of Contents


What is Durable Execution?

Durable execution is a fault-tolerant approach to running code that handles failures and interruptions through automatic retries and state persistence. Your orchestration logic is checkpointed at every step, so if a process crashes or a VM reboots, execution resumes exactly where it left off. Common use cases include distributed transactions, multi-agent AI orchestration, data processing pipelines, and infrastructure management. Paired with a developer framework like Durable Functions or the Durable Task SDKs, the scheduler lets you author stateful apps on any compute without architecting for fault tolerance yourself.


Why Durable Task Scheduler?

  • 🏗️ Fully managed — no storage accounts to configure, no infrastructure to maintain
  • Purpose-built & fast — optimized compute+memory; push-model gRPC streaming (no polling)
  • 📊 Built-in dashboard — monitor orchestrations, drill into history, pause/terminate/restart instances (Learn more)
  • 🛡️ Fault isolation — runs as a separate Azure resource; failures don't cascade to your app
  • 📈 Independent scaling — scheduler scales separately from your app; multiple apps can share one scheduler
  • 🗂️ Multiple task hubs — isolate workloads by environment, team, or project (Learn more)
  • 🐳 Emulator for local dev — Docker-based emulator with dashboard included, zero Azure dependency
  • 🔐 Identity-based auth — Microsoft Entra ID / managed identity, no secrets in connection strings (Learn more)
  • 🌍 Run anywhere — Azure Functions, Container Apps, AKS, App Service, VMs

Architecture


⚡ Get Started in 5 Minutes

Step 1: Start the emulator

docker pull mcr.microsoft.com/dts/dts-emulator:latest
docker run -d -p 8080:8080 -p 8082:8082 mcr.microsoft.com/dts/dts-emulator:latest

Step 2: Pick your language and run a sample

Language Quickstart Sample Run Command
.NET Function Chaining cd samples/durable-task-sdks/dotnet/FunctionChaining/Worker && dotnet run
Python Function Chaining cd samples/durable-task-sdks/python/function-chaining && pip install -r requirements.txt && python worker.py
Java Function Chaining cd samples/durable-task-sdks/java/function-chaining && ./gradlew runChainingPattern

Step 3: Open the dashboard

Navigate to http://localhost:8082 to view orchestration status, history, and more.


Choose Your Framework

Durable Functions Durable Task SDKs
Best for Serverless event-driven apps Any compute (containers, VMs, etc.)
Hosting Azure Functions Any host (ACA, AKS, App Service, VMs)
Triggers HTTP, Timer, Queue, etc. Self-managed
Scaling Built-in auto-scale Bring your own scaling
Languages .NET, Python, Java, JavaScript .NET, Python, Java

📖 Choosing an orchestration framework →


Samples

Explore production-ready examples across languages and frameworks.

📂 Full Sample Catalog →

Featured Samples

🤖 AI Research Agent — Autonomous academic research agent that searches arXiv, analyzes papers, and synthesizes reports (Python)

✈️ AI Travel Planner — Multi-agent travel planning with specialized agents and human approval (Durable Functions, .NET)

🛒 Order Processor — End-to-end order workflow with inventory, payment, and notifications (Durable Functions, .NET)

🔄 Saga Pattern — Distributed transactions with compensating actions for failure recovery (Durable Functions, .NET)


Observability

The Durable Task Scheduler provides a built-in dashboard for monitoring orchestration instances, inspecting execution history, and managing running workflows. The SDKs also support OpenTelemetry distributed tracing for end-to-end visibility across services. Durable Functions users can leverage distributed tracing V2 for enhanced diagnostics.


API Reference

Durable Task SDKs

Durable Functions


AI-Assisted Development

This repository includes specialized skills for AI coding assistants (GitHub Copilot, Claude Code) to help you build durable workflows with best practices, code patterns, and contextual guidance.

Skill Description Path
durable-functions-dotnet Durable Functions with .NET isolated worker — orchestrations, activities, entities, and all workflow patterns Skill →
durable-task-dotnet Durable Task SDK for .NET — portable orchestrations without Azure Functions dependency Skill →
durable-task-java Durable Task SDK for Java — orchestrations, activities, and common workflow patterns Skill →
durable-task-python Durable Task SDK for Python — orchestrations, activities, entities, and stateful agents Skill →

Usage: Reference a skill file in your AI assistant (e.g., #file:.github/skills/durable-task-dotnet/SKILL.md in Copilot Chat) or ask it to read the skill before generating code. Skills are automatically detected by Claude Code when working on relevant files.


Contributing

We welcome contributions! Please see CONTRIBUTING.md for guidelines on how to get involved, submit issues, and open pull requests.


Community & Support


License

This project is licensed under the MIT License.

Star this repo if you find it useful!

Contributors 13