- Fix filter not being passed along in
PurgeAllInstancesAsync
(microsoft#289)
- Enable inner exception detail propagation in
TaskFailureDetails
(#290) - Microsoft.Azure.DurableTask.Core dependency increased to
2.17.0
- Fix
TaskFailureDetails.IsCausedBy
to support custom exceptions and 3rd party exceptions (#273) - Microsoft.Azure.DurableTask.Core dependency increased to
2.16.2
- Fix typo in
PurgeInstanceAsync
inDurableTaskClient
(microsoft#264)
- Adds support to recursively terminate/purge sub-orchestrations in
GrpcDurableTaskClient
(microsoft#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
(microsoft#212)
- Fix re-encoding of events when using
TaskOrchestrationContext.ContinueAsNew(preserveUnprocessedEvents: true)
(microsoft#212)
- Fix handling of concurrent external events with the same name (microsoft#194)
- Fix instance ID not being passed in when using retry policy (microsoft#174)
- Add
GrpcDurableTaskWorkerOptions.CallInvoker
as an alternative toGrpcDurableTaskWorkerOptions.Channel
- Add
GrpcDurableTaskClientOptions.CallInvoker
as an alternative toGrpcDurableTaskClientOptions.Channel
- Fix issue with
TaskOrchestrationContext.Parent
not being set.
- Fix incorrect bounds check on
PurgeResult
- Address typo for
DurableTaskClient.GetInstancesAsync
(incorrectly pluralized)- Added
GetInstanceAsync
- Hide
GetInstancesAsync
from editor
- Added
- Added
SuspendInstanceAsync
andResumeInstanceAsync
toDurableTaskClient
. - Rename
DurableTaskClient
methodsTerminateAsync
->TerminateInstanceAsync
PurgeInstanceMetadataAsync
->PurgeInstanceAsync
PurgeInstances
->PurgeAllInstancesAsync
GetInstanceMetadataAsync
->GetInstanceAsync
GetInstances
->GetAllInstancesAsync
TaskOrchestrationContext.CreateReplaySafeLogger
now createsILogger
directly (as opposed to wrapping an existingILogger
).- Durable Functions class-based syntax now resolves
ITaskActivity
instances fromIServiceProvider
, if available there. DurableTaskClient
methods have been touched up to ensureCancellationToken
is 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.Client
when 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.Abstractions
Microsoft.DurableTask.Generators
Microsoft.DurableTask.Client
Microsoft.DurableTask.Client.Grpc
Microsoft.DurableTask.Worker
Microsoft.DurableTask.Worker.Grpc
- Added more API documentation
- Adds ability to perform multi-instance query
- Adds
PurgeInstancesMetadataAsync
andPurgeInstancesAsync
support and implementation toGrpcDurableTaskClient
- Fix issue with mixed Newtonsoft.Json and System.Text.Json serialization.
IDurableTaskClientProvider
added 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.Generators
reference removed.- Added new abstract property
TaskOrchestrationContext.ParentInstance
. - Added new abstract method
DurableTaskClient.PurgeInstancesAsync
. - Renamed
TaskOrchestratorBase
toTaskOrchestrator
OnRunAsync
->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
TaskActivityBase
toTaskActivity
OnRun
removed. With bothOnRun
andOnRunAsync
, there was no compiler error when you did not implement one. The remaining method is now markedabstract
to 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.StartSubOrchestrationAsync
refactored:instanceId
parameter removed. Can now specify it via supplyingSubOrchestrationOptions
forTaskOptions
.
TaskOptions
refactored to be a record type.- Builder removed.
- Retry provided via a property
TaskRetryOptions
, which is a pseudo union-type which can be either aRetryPolicy
orAsyncRetryHandler
. SubOrchestrationOptions
is a derived type that can be used to specific a sub-orchestrations instanceId.- Helper method
.WithInstanceId(string? instanceId)
added.
DurableTaskClient.ScheduleNewOrchestrationInstanceAsync
refactored:instanceId
andstartAfter
wrapped intoStartOrchestrationOptions
object.
- 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.Version
removed for now. Will be added when we address versioning. IDurableTaskRegistry
removed, onlyDurableTaskRegistry
concrete type.- All lambda-methods renamed to
AddActivityFunc
andAddOrchestratorFunc
. This was to avoid ambiguous or incorrect overload resolution with the factory methods.
- All lambda-methods renamed to
Microsoft.DurableTask.Generators
Microsoft.DurableTask.Generators
is 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.AddAllGeneratedTasks
madeinternal
(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