All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
ADDED
- Added
durabletask.testingmodule withInMemoryOrchestrationBackendfor testing orchestrations without a sidecar process
FIXED:
- Fix unbound variable in entity V1 processing
ADDED
- Allow entities with custom names
CHANGED
- Allow task.fail() to be called with Exceptions
- Update type-hinting for Task return sub-types
- Add/update type-hinting for various worker methods
ADDED:
- Added new_uuid method to orchestration clients allowing generation of replay-safe UUIDs.
- Added ProtoTaskHubSidecarServiceStub class to allow passing self-generated stubs to worker
- Added support for new event types needed for specific durable backend setups:
- orchestratorCompleted
- eventSent
- eventRaised modified to support entity events
CHANGED:
- Added py.typed marker file to durabletask module
- Updated type hinting on EntityInstanceId.parse() to reflect behavior
- Entity operations now use UUIDs generated with new_uuid
FIXED:
- Mismatched parameter names in call_entity/signal_entity from interface
ADDED:
- Allow retrieving entity metadata from the client, with or without state
ADDED:
- Allow calling sub-orchestrators by name
- Abandon workitems if unhandled exception occurs in client
CHANGED:
- Improve execution logging
- Supported Python versions are now 3.10- 3.14. Python 3.9 is end of life and has been removed.
FIXED:
- Reduce exposure of Entity context internally
- Added support for Durable Entities
- Fixed an issue where orchestrations would still throw non-determinism errors even when versioning logic should have prevented it
- Added support for orchestration and activity tags
- Added support for orchestration versioning and versioning logic in the worker
- Added
ConcurrencyOptionsclass for fine-grained concurrency control with separate limits for activities and orchestrations. The thread pool worker count can also be configured.
- Fixed an issue where a worker could not recover after its connection was interrupted or severed
- Added
set_custom_statusorchestrator API (#31) - contributed by @famarting - Added
purge_orchestrationclient API (#34) - contributed by @famarting - Added new
durabletask-azuremanagedpackage for use with the Durable Task Scheduler - by @RyanLettieri
- Protos are compiled with gRPC 1.62.3 / protobuf 3.25.X instead of the latest release. This ensures compatibility with a wider range of grpcio versions for better compatibility with other packages / libraries (#36) - by @berndverst
- Http and grpc protocols and their secure variants are stripped from the host name parameter if provided. Secure mode is enabled if the protocol provided is https or grpcs (#38 - by [@berndverst)(https://github.com/berndverst)
- Improve ProtoGen by downloading proto file directly instead of using submodule (#39 - by @berndverst
- Updated
durabletask-protobufsubmodule reference to latest
- Add recursive flag in terminate_orchestration to support cascade terminate (#27) - contributed by @shivamkm07
- Retry policies for activities and sub-orchestrations (#11) - contributed by @DeepanshuA
- Fix try/except in orchestrator functions not being handled correctly (#21) - by @cgillum
- Updated
durabletask-protobufsubmodule reference to latest distributed tracing commit - by @cgillum
- Adds support for secure channels (#18) - contributed by @elena-kolevska
- Fix zero argument values sent to activities as None (#13) - contributed by @DeepanshuA
- Add gRPC metadata option (#16) - contributed by @DeepanshuA
- Removed Python 3.7 support due to EOL (#14) - contributed by @berndverst
- Continue-as-new (#9)
- Support for Python 3.7+ (#10) - contributed by @DeepanshuA
Initial release, which includes the following features:
- Orchestrations and activities
- Durable timers
- Sub-orchestrations
- Suspend, resume, and terminate client operations