microsoft/durabletask-python

A Durable Task Python SDK compatible with the Durable Task Scheduler

40

stars

185

commits

Python

primary language

Sep 4, 2026

updated

README

Durable Task SDK for Python

License:
MIT Build
Validation PyPI version

This repository contains Python SDKs for building durable orchestrations with Azure Durable Task Scheduler and Azure Durable Functions:

References

Optional Features

Large Payload Externalization

Install the azure-blob-payloads extra to automatically offload oversized orchestration payloads to Azure Blob Storage:

pip install durabletask[azure-blob-payloads]

See the feature documentation and the example for usage details.

Failure Details Properties

Configure an ExceptionPropertiesProvider to attach portable diagnostic properties to activity, entity, and orchestration failures:

from durabletask import ExceptionPropertiesProvider
from durabletask.worker import TaskHubGrpcWorker


class FailureProperties(ExceptionPropertiesProvider):
    def get_exception_properties(self, exception: Exception):
        return {"error_code": getattr(exception, "error_code", None)}


worker = TaskHubGrpcWorker(exception_properties_provider=FailureProperties())

Properties support None, booleans, numbers, strings, nested mappings, and lists. They are available from TaskFailedError.details, orchestration state, and history as FailureDetails.properties.

[!NOTE] Python intentionally treats .NET's dt: and dto: property strings as ordinary strings, matching the Java SDK. Consequently, datetime values do not retain their type across Python/.NET failure-details property round trips; this is a .NET SDK parity gap.

Trademarks

This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft's Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party's policies.

Contributors

andystaples

100 commits

berndverst

32 commits

cgillum

19 commits

DeepanshuA

8 commits

microsoft/durabletask-python

A Durable Task Python SDK compatible with the Durable Task Scheduler

40

stars

185

commits

Python

primary language

Sep 4, 2026

updated

README

Durable Task SDK for Python

License:
MIT Build
Validation PyPI version

This repository contains Python SDKs for building durable orchestrations with Azure Durable Task Scheduler and Azure Durable Functions:

References

Optional Features

Large Payload Externalization

Install the azure-blob-payloads extra to automatically offload oversized orchestration payloads to Azure Blob Storage:

pip install durabletask[azure-blob-payloads]

See the feature documentation and the example for usage details.

Failure Details Properties

Configure an ExceptionPropertiesProvider to attach portable diagnostic properties to activity, entity, and orchestration failures:

from durabletask import ExceptionPropertiesProvider
from durabletask.worker import TaskHubGrpcWorker


class FailureProperties(ExceptionPropertiesProvider):
    def get_exception_properties(self, exception: Exception):
        return {"error_code": getattr(exception, "error_code", None)}


worker = TaskHubGrpcWorker(exception_properties_provider=FailureProperties())

Properties support None, booleans, numbers, strings, nested mappings, and lists. They are available from TaskFailedError.details, orchestration state, and history as FailureDetails.properties.

[!NOTE] Python intentionally treats .NET's dt: and dto: property strings as ordinary strings, matching the Java SDK. Consequently, datetime values do not retain their type across Python/.NET failure-details property round trips; this is a .NET SDK parity gap.

Trademarks

This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft's Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party's policies.

Contributors

andystaples

100 commits

berndverst

32 commits

cgillum

19 commits

DeepanshuA

8 commits

Languages

Python

99.9%