Get a durable orchestration running locally in under 5 minutes. No Azure subscription needed.
- Docker installed and running
The Durable Task Scheduler emulator runs the full scheduler experience locally in Docker, including a monitoring dashboard.
docker pull mcr.microsoft.com/dts/dts-emulator:latest
docker run -d -p 8080:8080 -p 8082:8082 mcr.microsoft.com/dts/dts-emulator:latestVerify it's running by opening the dashboard: http://localhost:8082
Choose your language and follow the instructions:
Clone the repository, then open each terminal at the repository root:
git clone https://github.com/Azure-Samples/Durable-Task-Scheduler.git
cd Durable-Task-SchedulerRequires: .NET 10 SDK
Start the worker in Terminal 1:
dotnet run --project samples/durable-task-sdks/dotnet/FunctionChaining/WorkerRun the client in Terminal 2:
dotnet run --project samples/durable-task-sdks/dotnet/FunctionChaining/ClientRequires: Python 3.9+
Set up a virtual environment and start the worker in Terminal 1:
cd samples/durable-task-sdks/python/function-chaining
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
python worker.pyActivate the same virtual environment and run the client in Terminal 2:
cd samples/durable-task-sdks/python/function-chaining
source venv/bin/activate # Windows: venv\Scripts\activate
python client.pyRequires: Java 21
This sample starts the worker and client in the same process:
cd samples/durable-task-sdks/java/function-chaining
./gradlew runChainingPatternIf the Gradle wrapper is not executable, run chmod +x gradlew first.
Requires: Node.js 22+. The SDK supports JavaScript and TypeScript; this sample uses JavaScript.
Install dependencies and start the worker in Terminal 1:
cd samples/durable-task-sdks/javascript/function-chaining
npm install
npm run workerRun the client in Terminal 2:
cd samples/durable-task-sdks/javascript/function-chaining
npm run clientGo samples in this repository are coming soon. See the Go SDK repository for the beta SDK and its own samples.
- Open http://localhost:8082 in your browser
- Click on the default task hub
- You'll see your orchestration instance(s) in the list
- Click on an instance to view execution details: each activity, its input/output, and timing
You ran a function chaining orchestration, a sequential workflow where:
- Activity A processed some input and passed its output to...
- Activity B, which transformed it and passed it to...
- Activity C, which produced the final result
The orchestration is durable: if the process had crashed at any point, it would have automatically resumed from where it left off.
| What to do | Link |
|---|---|
| Explore all patterns | Orchestration Patterns Guide |
| Browse all samples | Sample Catalog |
| Learn about the Durable Task Scheduler | Official Documentation |
| Add OpenTelemetry tracing | Observability Guide |
| Deploy to Azure | Azure deployment guide |