durabletask
A Durable Task Client SDK for Python
What it is and what it does
Durabletask is Microsoft's Python SDK for building durable orchestrations—long-running workflows that can pause, resume, and survive failures by replaying their execution history. It provides decorators and APIs to define orchestrator functions (which coordinate work) and activity functions (which perform individual tasks), allowing you to build reliable, fault-tolerant distributed systems without manually managing state or recovery logic.
The package integrates with Azure Durable Task Scheduler and Azure Durable Functions, handling the complexity of persisting execution state, retrying failed activities, and replaying orchestrations from checkpoints. It depends on grpcio and protobuf for communication, and packaging for version handling. Optional features like large payload externalization to Azure Blob Storage are available through extras.
Use it for:
- Build multi-step approval workflows that survive service restarts and network failures
- Orchestrate long-running business processes (e.g., order processing, document workflows) with automatic retry and state recovery
- Coordinate parallel and sequential tasks across distributed systems with built-in fault tolerance
- Implement fan-out/fan-in patterns where one orchestration spawns many activities and waits for results
- Create audit trails and replay-based debugging for complex asynchronous workflows
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Durabletask is a Python SDK for building durable orchestrations and workflows that can survive failures and be replayed reliably, designed to work with Azure Durable Task Scheduler and Azure Durable Functions.
Yes, if you are building on Azure infrastructure or need durable, replay-based orchestration. The package is production-stable, actively maintained, has no known vulnerabilities, and low install friction. It is worth installing for reliable long-running workflows; if you are not using Azure or do not need replay-based fault tolerance, simpler alternatives may suffice.
Install
durabletask on PyPI
pip
pip install durabletaskuv
uv add durabletaskpoetry
poetry add durabletaskInstalling durabletask
Before you install
Low friction installation with a pure Python wheel. The package is actively maintained with a recent release and no known vulnerabilities. Runtime dependencies on grpcio, protobuf, and packaging are standard and widely available.
License in practice
MIT License permits unrestricted use, modification, and distribution in both open-source and commercial projects, with only the requirement to include the license notice.
Quickstart
pip install durabletask
from durabletask import orchestrator, activity
@orchestrator
def my_orchestration(context):
result = yield context.call_activity(my_activity, input_data)
return result
@activity
def my_activity(input_data):
return process(input_data)
Requires Python 3.10 or later. Orchestrations typically require a running Azure Durable Task Scheduler or Azure Durable Functions backend to execute.
Verify before relying
- Whether the package supports local development/testing without Azure infrastructure
- Performance characteristics and scalability limits for large orchestrations
- Exact replay semantics and determinism guarantees for complex workflows
Package facts
| License | MIT License Copyright (c) Microsoft Corporation. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to… (full text in the JSON record) (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 4 — grpcio, protobuf, asyncio, packaging |
| Maintenance | actively maintained — 15 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 387,987/month — #7,039 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: durabletask-1.9.0-py3-none-any.whl
Keywords: durable, task, workflow
Tags
More Distributed Computing packages
gRPC Python is an HTTP/2-based RPC framework…
permissive · top 100 on PyPI
execnetexecnet lets you spawn and communicate with…
permissive · top 1,000 on PyPI
cloudpickleCloudpickle extends Python's standard pickle…
permissive · top 1,000 on PyPI
smart-openProvides a unified, open()-compatible Python…
permissive · top 1,000 on PyPI
portalockerPortalocker provides cross-platform file…
permissive · top 1,000 on PyPI
rayRay is a distributed computing framework that…
permissive · top 1,000 on PyPI
durabletask.azuremanagedProvides a Python provider implementation for…
permissive · top 15,000 on PyPI
azure-functions-durableExtends Azure Functions to support stateful,…
permissive · top 5,000 on PyPI
restate-sdkRestate SDK provides a Python interface for…
unclear · top 15,000 on PyPI
agent-framework-durabletaskIntegrates Microsoft Agent Framework agents…
permissive · top 15,000 on PyPI
aws-durable-execution-sdk-pythonBuilds long-running AWS Lambda workflows with…
permissive · top 15,000 on PyPI
absurd-sdkPython SDK for Absurd, a PostgreSQL-based…
permissive · top 15,000 on PyPI
dbosDBOS adds durable workflows and queues to…
permissive · top 5,000 on PyPI
temporalioTemporal Python SDK provides a framework for…
permissive · top 1,000 on PyPI
hatchet-sdkHatchet SDK is the official Python client for…
permissive · top 5,000 on PyPI
agent-framework-azurefunctionsHosts Microsoft Agent Framework agents on Azure…
permissive · top 15,000 on PyPI