Introduce worker versioning into durable functions#3095
Conversation
|
This problem is probably not introduced nor fixable in this PR, but I discovered an issue with orchestration rejection when testing this E2E, so I'll mention it here. I have an orchestrator like this: [Function(nameof(WaitForEventOrchestrator))]
public static async Task<string> WaitForEventOrchestrator(
[OrchestrationTrigger] TaskOrchestrationContext context)
{
context.SetCustomStatus("Waiting for Continue event...");
await context.WaitForExternalEvent<object>("Continue");
context.SetCustomStatus("Continue event received");
return context.Version;
}Versioning config in "defaultVersion": "2.0",
"versionMatchStrategy": "CurrentOrOlder",
"versionFailureStrategy": "Reject",When I start an orchestration and it gets paused waiting for an external event, as expected. Next, I shut the worker down, change
Both can be significant issues for the user in some contexts. |
f9cda9a to
15de604
Compare
|
Updated the code to handle the sub-orchestration version use case you brought up @AnatoliB. Note that this PR now also depends on this change: microsoft/durabletask-dotnet#437 So that means the dependencies are for a DurableTask.Core release and the packages in the PR above ^ |
This commit adds the worker versioning options to the base DurableTaskOptions which are read through the host.json file. This change also includes a few changes for wiring the values through as well as testing. Signed-off-by: halspang <halspang@microsoft.com>
Signed-off-by: halspang <halspang@microsoft.com>
881ff3f to
c44d39e
Compare
Signed-off-by: halspang <halspang@microsoft.com>
c44d39e to
7b9c6a7
Compare
cgillum
left a comment
There was a problem hiding this comment.
Some initial feedback. Haven't gone through the whole thing again yet.
cgillum
left a comment
There was a problem hiding this comment.
Finished reviewing. Just a couple more things...
Signed-off-by: halspang <halspang@microsoft.com>
30c1cf4 to
ff16aaf
Compare
Signed-off-by: halspang <halspang@microsoft.com>
This commit adds the worker versioning options to the base DurableTaskOptions which are read through the host.json file. This change also includes a few changes for wiring the values through as well as testing.
Important
This change depends on multiple external changes/new versions:
As is, the tests in this PR will fail due to the lack of appropriate references. Once those releases are made, this PR will have to be updated. However, the code/tests are all complete in their implementation and are OK to be reviewed. This just cannot be merged until that point.