This repository contains Python SDKs for building durable orchestrations with Azure Durable Task Scheduler and Azure Durable Functions:
durabletaskis the core orchestration SDK.durabletask.azuremanagedis the Azure Durable Task Scheduler provider.azure-functions-durableis a preview Azure Durable Functions provider built ondurabletask.
- Supported Patterns
- Available Features
- Getting Started
- Development Guide
- Azure Functions Durable 2.x
- Contributing Guide
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.
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.
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.