Build reliable, fault-tolerant workflows that survive any failure.
- What is Durable Execution?
- Why Durable Task Scheduler?
- Get Started in 5 Minutes
- Choose Your Framework
- Samples
- Observability
- API Reference
- AI-Assisted Development
- Contributing
- Community & Support
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.
- 🏗️ 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
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| 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 |
Navigate to http://localhost:8082 to view orchestration status, history, and more.
| 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 →
Explore production-ready examples across languages and frameworks.
🤖 AI Research Agent — Autonomous academic research agent that searches arXiv, analyzes papers, and synthesizes reports (Python)
🛒 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)
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.
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.
We welcome contributions! Please see CONTRIBUTING.md for guidelines on how to get involved, submit issues, and open pull requests.
- 📖 Official Documentation
- 💬 GitHub Issues — bugs and feature requests
- 📧 Contact: nicholas.greenfield@microsoft.com, jiayma@microsoft.com
This project is licensed under the MIT License.
⭐ Star this repo if you find it useful!
