- Activity tag support (#426)
- Adding Analyzer to build and release (#444)
- Add ability to filter orchestrations at worker (#443)
- Removing breaking change for TaskOptions (#446)
- Add New Property Properties to TaskOrchestrationContext (#415)
- Add automatic retry on gateway timeout in
GrpcDurableTaskClient.WaitForInstanceCompletionAsync(#412) - Add specific logging for NotFound error on worker connection (#413)
- Add user agent header to gRPC called (#417)
- Enrich User-Agent Header in gRPC Metadata to indicate Client or Worker as caller (#421)
- Change DTS user agent metadata to avoid overlap with gRPC user agent (#423)
- Add extension methods for registering entities by type (#427)
- Add TaskVersion and utilize it for version overrides when starting orchestrations (#416)
- Update sub-orchestration default versioning (#437)
- Distributed Tracing for Entities (Isolated) (#404)
- Update DurableTask.Core to v3.1.0 and Bump version to v1.10.0 by @nytian in (#411)
- Add basic orchestration and activity execution logs by @cgillum in (#405)
- Add default version in
TaskOrchestrationContextby @halspang in (#408)
- Fix schedule sample logging setup by @YunchuWang in (#392)
- Introduce versioning to the DurableTaskClient by @halspang in (#393)
- Support for local credential types for DTS by @cgillum in (#396)
- Add utilities for easier versioning usage by @halspang in (#394)
- Add tags to CreateInstanceRequest by @torosent in (#397)
- Partial Purge Support by @YunchuWang in (#400)
- Dts Grpc client retry support by @YunchuWang in (#403)
- Introduce orchestration versioning into worker by @halspang in (#401)
- Add timeout to gRPC workitem streaming (#390)
- Add Schedule Support for Durable Task Framework (#368)
- Fixes and improvements
- Add parent trace context information when scheduling an orchestration (#358)
- Added new preview packages,
Microsoft.DurableTask.Client.AzureManagedandMicrosoft.DurableTask.Worker.AzureManaged - Move to Central Package Management (#373)
- Add new
IDurableTaskClientBuilder AddDurableTaskClient(IServiceCollection, string?)API
- Add new
IDurableTaskWorkerBuilder AddDurableTaskWorker(IServiceCollection, string?)API - Add support for work item history streaming
- Provide entity support for direct grpc connections to DTS (#369)
- Replace submodule for proto files with download script for easier maintenance
- Update to latest proto files
- Implement work item completion tokens for standalone worker scenarios (#359)
- Support for worker concurrency configuration (#359)
- Bump System.Text.Json to 6.0.10
- Initial support for the Azure-managed Durable Task Scheduler preview.
- Microsoft.Azure.DurableTask.Core dependency increased to
3.0.0
- Add
RetryPolicy.Handleproperty to allow for exception filtering on retries (#314)
- Microsoft.Azure.DurableTask.Core dependency increased to
2.17.1
- Fix filter not being passed along in
PurgeAllInstancesAsync(#289)
- Enable inner exception detail propagation in
TaskFailureDetails(#290) - Microsoft.Azure.DurableTask.Core dependency increased to
2.17.0
- Fix
TaskFailureDetails.IsCausedByto support custom exceptions and 3rd party exceptions (#273) - Microsoft.Azure.DurableTask.Core dependency increased to
2.16.2
- Fix typo in
PurgeInstanceAsyncinDurableTaskClient(#264)
- Adds support to recursively terminate/purge sub-orchestrations in
GrpcDurableTaskClient(#262)
- Microsoft.Azure.DurableTask.Core dependency increased to
2.16.1
- Microsoft.Azure.DurableTask.Core dependency increased to
2.16.0
- Microsoft.Azure.DurableTask.Core dependency increased to
2.16.0-preview.2
Adds support for durable entities. Learn more here.
- Microsoft.Azure.DurableTask.Core dependency increased to
2.16.0-preview.1
- Microsoft.Azure.DurableTask.Core dependency increased to
2.15.0(#212)
- Fix re-encoding of events when using
TaskOrchestrationContext.ContinueAsNew(preserveUnprocessedEvents: true)(#212)
- Fix handling of concurrent external events with the same name (#194)
- Fix instance ID not being passed in when using retry policy (#174)
- Add
GrpcDurableTaskWorkerOptions.CallInvokeras an alternative toGrpcDurableTaskWorkerOptions.Channel
- Add
GrpcDurableTaskClientOptions.CallInvokeras an alternative toGrpcDurableTaskClientOptions.Channel
- Fix issue with
TaskOrchestrationContext.Parentnot being set.
- Fix incorrect bounds check on
PurgeResult - Address typo for
DurableTaskClient.GetInstancesAsync(incorrectly pluralized)- Added
GetInstanceAsync - Hide
GetInstancesAsyncfrom editor
- Added
- Added
SuspendInstanceAsyncandResumeInstanceAsynctoDurableTaskClient. - Rename
DurableTaskClientmethodsTerminateAsync->TerminateInstanceAsyncPurgeInstanceMetadataAsync->PurgeInstanceAsyncPurgeInstances->PurgeAllInstancesAsyncGetInstanceMetadataAsync->GetInstanceAsyncGetInstances->GetAllInstancesAsync
TaskOrchestrationContext.CreateReplaySafeLoggernow createsILoggerdirectly (as opposed to wrapping an existingILogger).- Durable Functions class-based syntax now resolves
ITaskActivityinstances fromIServiceProvider, if available there. DurableTaskClientmethods have been touched up to ensureCancellationTokenis included, as well as is the last parameter.- Removed obsolete/unimplemented local lambda activity calls from
TaskOrchestrationContext - Input is now an optional parameter on
TaskOrchestrationContext.ContinueAsNew - Multi-target gRPC projects to now use
Grpc.Net.Clientwhen appropriate (.NET6.0 and up)
Note: Microsoft.DurableTask.Generators is remaining as preview.1.
Microsoft.DurableTask.Abstractions
Microsoft.DurableTask.Client
Microsoft.DurableTask.Client.Grpc
Microsoft.DurableTask.Worker
Microsoft.DurableTask.Worker.Grpc \
see v1.0.0-preview.1 for Microsoft.DurableTask.Generators
- Refactors and splits assemblies.
Microsoft.DurableTask.AbstractionsMicrosoft.DurableTask.GeneratorsMicrosoft.DurableTask.ClientMicrosoft.DurableTask.Client.GrpcMicrosoft.DurableTask.WorkerMicrosoft.DurableTask.Worker.Grpc
- Added more API documentation
- Adds ability to perform multi-instance query
- Adds
PurgeInstancesMetadataAsyncandPurgeInstancesAsyncsupport and implementation toGrpcDurableTaskClient - Fix issue with mixed Newtonsoft.Json and System.Text.Json serialization.
IDurableTaskClientProvideradded to support multiple named clients.- Added new options pattern for starting new and sub orchestrations.
- Overhauled builder API built on top of .NET generic host.
- Now relies on dependency injection.
- Integrates into options pattern, giving a variety of ways for user configuration.
- Builder is now re-enterable. Multiple calls to
.AddDurableTask{Worker|Client}with the same name will yield the exact same builder instance.
Microsoft.DurableTask.Generatorsreference removed.- Added new abstract property
TaskOrchestrationContext.ParentInstance. - Added new abstract method
DurableTaskClient.PurgeInstancesAsync. - Renamed
TaskOrchestratorBasetoTaskOrchestratorOnRunAsync->RunAsync, forced-nullability removed.- Nullability can be done in generic params, ie:
MyOrchestrator : TaskOrchestrator<string?, string?> - Nullability is not verified at runtime by the base class, it is up to the individual orchestrator implementations to verify their own nullability.
- Renamed
TaskActivityBasetoTaskActivityOnRunremoved. With bothOnRunandOnRunAsync, there was no compiler error when you did not implement one. The remaining method is now markedabstractto force an implementation. Synchronous implementation can still be done viaTask.FromResult.OnRunAsync->RunAsync, forced-nullability removed.- Nullability can be done in generic params, ie:
MyActivity : TaskActivity<string?, string?> - Nullability is not verified at runtime by the base class, it is up to the individual activity implementations to verify their own nullability.
TaskOrchestrationContext.StartSubOrchestrationAsyncrefactored:instanceIdparameter removed. Can now specify it via supplyingSubOrchestrationOptionsforTaskOptions.
TaskOptionsrefactored to be a record type.- Builder removed.
- Retry provided via a property
TaskRetryOptions, which is a pseudo union-type which can be either aRetryPolicyorAsyncRetryHandler. SubOrchestrationOptionsis a derived type that can be used to specific a sub-orchestrations instanceId.- Helper method
.WithInstanceId(string? instanceId)added.
DurableTaskClient.ScheduleNewOrchestrationInstanceAsyncrefactored:instanceIdandstartAfterwrapped intoStartOrchestrationOptionsobject.
- Builder API completely overhauled. Now built entirely on top of the .NET generic host.
- See samples for how the new API works.
- Supports multiple workers and named-clients.
- Ability to set
TaskName.Versionremoved for now. Will be added when we address versioning. IDurableTaskRegistryremoved, onlyDurableTaskRegistryconcrete type.- All lambda-methods renamed to
AddActivityFuncandAddOrchestratorFunc. This was to avoid ambiguous or incorrect overload resolution with the factory methods.
- All lambda-methods renamed to
Microsoft.DurableTask.Generators
Microsoft.DurableTask.Generatorsis now an optional package.- no longer automatically brought in when referencing other packages.
- To get code generation, add
<PackageReference Include="Microsoft.DurableTask.Generators" Version="1.0.0-preview.1" PrivateAssets="All" />to your csproj.
GeneratedDurableTaskExtensions.AddAllGeneratedTasksmadeinternal(frompublic)- This is also to avoid conflicts when multiple files have this method generated. When wanting to expose to external consumes, a new extension method can be manually authored in the desired namespace and with an appropriate name which calls this method.
Initial public release