skillfed

durabletask

A Durable Task Client SDK for Python

durabletask v1.9.0 388.0K downloads/30d#7,039 on PyPI38
Permissive 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) Active released

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 durabletask

uv

uv add durabletask

poetry

poetry add durabletask

Installing 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

Development Status :: 5 - Production/StableLicense :: OSI Approved :: MIT LicenseProgramming Language :: Python :: 3

Tags

durable workflow orchestrationreliable task scheduling pythonazure durable functions sdkfault-tolerant workflow enginedistributed task orchestrationreplay-based workflow frameworklong-running process management
workflow-orchestrationazure-integrationfault-tolerance

More Distributed Computing packages

grpcio

gRPC Python is an HTTP/2-based RPC framework…

permissive · top 100 on PyPI

execnet

execnet lets you spawn and communicate with…

permissive · top 1,000 on PyPI

cloudpickle

Cloudpickle extends Python's standard pickle…

permissive · top 1,000 on PyPI

smart-open

Provides a unified, open()-compatible Python…

permissive · top 1,000 on PyPI

portalocker

Portalocker provides cross-platform file…

permissive · top 1,000 on PyPI

ray

Ray is a distributed computing framework that…

permissive · top 1,000 on PyPI

durabletask.azuremanaged

Provides a Python provider implementation for…

permissive · top 15,000 on PyPI

azure-functions-durable

Extends Azure Functions to support stateful,…

permissive · top 5,000 on PyPI

restate-sdk

Restate SDK provides a Python interface for…

unclear · top 15,000 on PyPI

agent-framework-durabletask

Integrates Microsoft Agent Framework agents…

permissive · top 15,000 on PyPI

aws-durable-execution-sdk-python

Builds long-running AWS Lambda workflows with…

permissive · top 15,000 on PyPI

absurd-sdk

Python SDK for Absurd, a PostgreSQL-based…

permissive · top 15,000 on PyPI

dbos

DBOS adds durable workflows and queues to…

permissive · top 5,000 on PyPI

temporalio

Temporal Python SDK provides a framework for…

permissive · top 1,000 on PyPI

hatchet-sdk

Hatchet SDK is the official Python client for…

permissive · top 5,000 on PyPI

agent-framework-azurefunctions

Hosts Microsoft Agent Framework agents on Azure…

permissive · top 15,000 on PyPI