From c07ded67581b6805ff802293e808f52f69df68b6 Mon Sep 17 00:00:00 2001 From: Whit Waldo Date: Fri, 25 Apr 2025 05:45:40 -0500 Subject: [PATCH 1/7] Updated proposal to include images and added some feedback received from previous iterations Signed-off-by: Whit Waldo --- 20250422-BRS-workflow-versioning.md | 223 ++++++++++++++++++ .../RerunClone.jpg | Bin 0 -> 169248 bytes .../VersioningFlowchart.jpg | Bin 0 -> 54441 bytes 3 files changed, 223 insertions(+) create mode 100644 20250422-BRS-workflow-versioning.md create mode 100644 resources/20250422-BRS-workflow-versioning/RerunClone.jpg create mode 100644 resources/20250422-BRS-workflow-versioning/VersioningFlowchart.jpg diff --git a/20250422-BRS-workflow-versioning.md b/20250422-BRS-workflow-versioning.md new file mode 100644 index 0000000..2035293 --- /dev/null +++ b/20250422-BRS-workflow-versioning.md @@ -0,0 +1,223 @@ +# Workflow Versioning +- Author: Whit Waldo (@whitwaldo) +- Status: Proposed +- Introduced: 4/22/2025 + +## Overview +This proposal outlines a method for implementing workflow versioning in Dapr Workflows. While the precise implementation +details are left to the maintainers of the individual project components (e.g., SDKs, runtime), it shares a proposed +mechanism for runtime-level functionality and examples for the C# SDK. Other SDK implementation specifics will vary. + +## Background +Several proposals have addressed applying changes to workflows both during execution and at terminal states. Changing +input values mid-way in a workflow transforms a deterministic workflow into a non-deterministic one by introducing values +not produced during execution - this is little different than swapping out the code to effect a change on a workflow +into the same type. It's unsafe and rife with opportunities to introduce errors into the workflow (especially if the +newly inserted value doesn't match the signature originally expected). Although the latest version of +[this proposal](https://github.com/dapr/proposals/pull/80) requires using a separate Workflow instance ID for re-runs, +making it deterministic post-change, this functionality might preclude adding other sought-after features like +a generalized workflow versioning scheme because of the inconsistency introduced between how different workflow +versions might operate (actual code changes) and the types that Reruns are created from. + +To clarify this last point, imagine that as part of a re-run, one selects one of the activities mid-way through the +workflow. They clone the event log up until that activity and assign this workflow to a new instance ID, but it's still +based on the same underlying logic from the implementing class following that activity. Now imagine that as part of a +subsequent deployment, the developer simply swaps out the logic for the implementing workflow class - while this would +incur a litany of errors for any mid-flight workflow (addressed here), presumably it would run entirely fine with a +clean start... except that the activity flow embodied in the cloned re-run workflow is no longer necessarily consistent. +I propose that this itself should be reason to rethink running derivative workflows in a clear and versioned manner +as a first-class concept early so we can facilitate such ad-hoc re-runs. + +Additionally, I subscribe to the +[opinion described here](https://github.com/dapr/proposals/pull/80#discussion_r2034962632) that by simply changing an +input to a workflow midway through constitutes a violation of the deterministic contract provided by the workflows, but +I think this proposal can be married to the re-run concept in a slightly re-imagined way that enables both scenarios +while also facilitating a more elaborate patch-based versioning scheme down the road as well. + +This [other proposal](https://github.com/dapr/proposals/pull/80) suggests a mechanism for versioning workflows, aiming +to facilitate the re-run functionality in the other proposal with the slight modifications described here. + +## Assumptions +- All actors, workflows and activities register with the sidecar at launch, allowing the runtime to store their metadata in +a placement table for scheduling future work. It +[does not appear](https://github.com/dapr/dapr/blob/80e00a6847f26875a11d6a0eb1de4ac98c423bde/pkg/runtime/wfengine/backends/actors/actors.go#L88) +that specific type names are stored in this placement table though, meaning that there will be a reliance on the SDKs +themselves to provide "latest version" much of the implementation necessary to support this change. +- `ContinueAsNew` offers the ability to obliterate the previous execution's event log and restarts using the +same workflow type (today). +- Versioning operations should only be performed on workflows indicated as completed and ready for purging (or starting +from scratch). +`ContinueAsNew` provides a terminal point for our purposes, preserving deterministic integrity by performing a swap to +a new type version at this point when the new workflow is started. +- This proposal addresses workflow versioning only, not activity versioning. Activities are not required to be +deterministic and can be swapped out, although this isn't recommended. Clear documentation should advise against sharing +activities across workflows due to potential unexpected ramifications. + +## Design +This proposal suggests using redirects for versioning because they: +1. Simplify the implementation required for runtime maintainers +2. Address common versioning needs +3. Does not preclude future feature flag/patching implementation including re-run support + +## What Does Versioning Seek to Solve? +Imagine having the following infinitely looping workflow as implemented in C#. The workflow receives some object identifier +and runs it through an activity to check its status and if that returns a `true` result, it performs another action +to notify the customer. Then it sleeps for 15 minutes and starts again using the `ContinueAsNew` method, providing it +with the object identifier once again. + +```c# +internal sealed SampleWorkflow : Workflow +{ + public override async Task RunAsync(WorkflowContext context, string id) + { + var status = await context.CallActivityAsync(nameof(CheckStatus), id); + if (status) + { + await context.CallActivityAsync(nameof(NotifyCustomer), id); + } + + await context.CreateTimer(TimeSpan.FromMinutes(15)); + context.ContinueAsNext(id, false); + + return null; + } +} +``` + +The deterministic nature of these workflows means several things: +- **One cannot simply swap out this type in a new deployment:** Swapping out the workflow type might fail catastrophically +if in-flight workflows were unable to complete, leading to developer confusion (as they might assume that a new +deployment would mean all previous workflows were cancelled). +- **Code cannot simply be added to the workflow:** Following the reasoning of the previous point, adding new code violates +deterministic integrity, potentially causing unexpected faults. + +If the workflow were to have stopped when it was finished, it would have given the developer an opportunity to relaunch +it using a different type and enabling a blue/green-like deployment model - that is, deploy a new "green" type until all +the existing "blue" types are known to have stopped running and have redeployed as "green" types, then delete the "blue" +type from their next deployment altogether. However, in this very likely scenario, the developer never has an opportunity +to swap out Workflow types. + +Now, had the developer thought ahead about this in 1.15, they could have introduced an activity that performed some sort +of reflective analysis of its own service or used some sort of Workflow registry to determine that there was a newer type +available to swap to, then scheduled a one-time Dapr Job with the updated Workflow type name as the payload and ended +the current workflow in order to have the job invoke the new Workflow type, but this introduces quite a lot of complexity. +As we're trying to simplify distributed application development with Dapr, I propose that there's a simpler approach +available to us here that introduces a powerful mechanism to swap between Workflow types with minimal changes by +developers to their existing workflows. + +## Implementation Details +I propose that we make relatively small changes to Dapr Workflows APIs externally. + +First, we introduce and document a new convention where workflow types are versioned by appending a numerical value to +the end of their names. Higher numerical values represent later versions (e.g. `ExampleWorkflow100` represents a later +version of the `ExampleWorkflow10` type). + +Second, I propose that the SDKs reflect an optional `DaprVersioningOptions` configuration value during registration. +These options provide the following properties (to start with). If the option is configured (regardless of the following +options, versioning is enabled on that app: +- `MapMultiAppTypes`: This is primarily imagined to align with the +Multi-App Run proposal](https://github.com/dapr/proposals/pull/76) in that it would accept a `List` +defined by (in .NET at least) `public sealed record MultiAppWorkflowMap(string WorkflowType, string AppId);` in which the +`WorkflowTypeWithoutVersion`: reflects the name of the class implementing the workflow (optionally absent its version +number) and the `AppId` contains the identifier of the application containing the type. In line with that proposal, +when the request comes into the SDK associated with that application, if it supports versioning, it is responsible +for referring to its own mapping registration to understand which type, specifically, to direct the request to. +- `ExcludeTypes`: A `IReadOnlyList` containing the names of workflow types (optionally absent its version number) +that should be excluded from version routing and which should always invoke precisely the named type indicated. + +Versioning should only happen on terminal and version-configured workflows meaning that only when the runtime is seeking +to call back into the workflow SDK to run work on a specific workflow should this versioning routing operation take +place. This means that there are only two places in which this should happen today and one in a proposed future: +1) Following a `ScheduleWorkflowAsync` call or during the same following a `ContinueAsNew` call (but only if +`preserveUnprocessedEvents` is set to `false`) as either one will clear the state and all pending events (including +external events) ensuring we don't end up with a workflow that does not match its preserved event history. +2) When the runtime calls into the SDK to invoke a re-run of a workflow against a specific named workflow type. + +### Re-run Support +Additionally, the workflow context should be updated with a settable string property that reflects the latest type +including version) used to run the workflow. While this wouldn't be necessary to facilitate this idea itself, it is +necessary to support the re-run workflow proposal and its capabilities. Reason being, the concern about versioning with +ad-hoc mid-workflow runs is that the underlying logic might change and the runtime has no knowledge about the specific +type being executed (as that's entirely managed in the SDK). By naming the type in the workflow, it means we don't have +to make any changes to the placement table or runtime routing logic. + +Rather, thinking through how a replay would work, the developer would pick a mid-workflow activity to re-run from +within a workflow ID. The re-run API would facilitate cloning the event log and actor metadata (including this workflow +type) for that workflow into a separate workflow ID on he new actor. When the actor calls back into the workflow SDK to +run the work from the specified activity within that new workflow ID, it should also specify this type value so the SDK +can route to that specific type (as though it were excluded per the configuration options above) so there is no +versioning impact to the re-run workflow itself and it always runs against a consistent type. + +![Workflow Re-run Clone](./resources/20250422-BRS-workflow-versioning/RerunClone.jpg) + +### SDK Example +Here's an example of what this might look like during the registration process in C#: + +```c# +var builder = Host.CreateDefaultBuilder(args).ConfigureServices(services => { + services.AddDaprWorkflow(options => { + options.WithVersioning(); //Adding this enables versioning on this application + + options.RegisterWorkflow(); + options.RegisterWorkflow(); //This is the newer of the registered workflows + }); +}); +``` + +## What needs to change? +### Protos +This requires more research into how the SDK interacts with the runtime, but I expect the necessary changes are minimal +given that the majority of what's happening in this proposal happens within each of the SDKs. + +Tracing through how `ContinueAsNew` works in the .NET SDK, it relies on the `TaskOrchestrationContext` implemented +in the `DurableTask.Core` library. This kicks off a new workflow using the same instance ID and input without any of +the corresponding artifacts (in-process tasks, events, etc.). This is primarily done in the upstream durable task +clients themselves and not in the runtime as those clients will eventually just call `StartWorkflowAlpha1`. + +To that end, `StartWorkflowRequest` allows for a map of `` options (under the `options` property) that +were originally intended to configure the workflow component. I propose repurposing that here to pass the payload of the +`DaprVersioningOptions` as key/value pairs back to the runtime to provide it context whenever `ContinueAsNew` is used +(as this isn't implemented at the runtime, but at the SDK level). This doesn't require a protos change and only +necessitates a change to each language SDK. + +Finally, the only other change to a proto necessary here might be the one proposed in the +[Multi-App Workflow]() to specify the application ID the type should be +discovered within. This can be specified in the `LimitTypesToApplicationId` property I include in the +`DaprVersioningOptions` example above and included in that mapping back to the workflow `options` property. + +### SDKs +A change is necessary to the upstream durable task client and worker and how it routes inbound workflow invocations. +The following decision chart illustrates how this might change (assuming the re-run proposal as well): + +![Workflow invocation flowchart](./resources/20250422-BRS-workflow-versioning/VersioningFlowchart.jpg) + + +### Runtime +Really the only thing required by the runtime is adding the workflow type to the workflow state metadata for +re-run purposes and changing it to reflect whenever the workflow actor is invoked again. Otherwise, apart from passing +it along into the app's SDK to start a workflow (along with whatever context is provided along with the re-run +invocation). But I think that's it from the runtime perspective. + +### Documentation +The documentation needs an update to provide as many low-level details about versioning as possible. Here, that should +specifically detail the convention previously articulated, how each of the SDKs accommodate this and how this is +implicated across the various other emergent features of Dapr Workflows. + +## Benefits +The implementation here is simple and sets up a starting point for a more elaborate versioning approach using patching +and/or feature flags. I believe it also enables Josh's proposal for workflow re-runs atop this routed solution +to solve the underlying workflow type mismatch inherent to his proposal. Finally, it also provides a solution +to a frequently raised issue by the community in a straightforward and simple way (from the developers' perspective). + +It maintains the deterministic nature of the workflows themselves and doesn't introduce any elaborate routing rules or +other complexity that might lead to this idea being underutilized in practice. Most of all, it doesn't change anything +about the fundamental nature of how the workflows themselves execute as a whole and leaves us the broadest door possible +to effectuating a point-in-time re-execution approach that builds atop this behavior and yields a consistent workflow +state while benefiting from the registry of available types already registered via the Workflow SDKs. + +## Additional Considerations +- The Multi-App run proposal envisions being able to invoke workflows and activities across applications. It should be +mentioned in relevant documentation that if any of the cross-referenced applications has enabled versioning, this may +interfere with expectations about what the workflow itself actually does (much like swapping out what activities do and +their various side effects), but the functionality is worth having in Dapr. This option should be made available to +developers and the ramifications of using simply made clear. \ No newline at end of file diff --git a/resources/20250422-BRS-workflow-versioning/RerunClone.jpg b/resources/20250422-BRS-workflow-versioning/RerunClone.jpg new file mode 100644 index 0000000000000000000000000000000000000000..19bf6e872429f10421bc374df0d17d80a1dd8d4b GIT binary patch literal 169248 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

;pp0GQUQ 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 literal 0 HcmV?d00001 diff --git a/resources/20250422-BRS-workflow-versioning/VersioningFlowchart.jpg b/resources/20250422-BRS-workflow-versioning/VersioningFlowchart.jpg new file mode 100644 index 0000000000000000000000000000000000000000..52053ea134214c63b90a14a8f1d632fa75b36297 GIT binary patch literal 54441 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 Date: Mon, 22 Sep 2025 03:42:49 -0500 Subject: [PATCH 2/7] Fixed method name typo Signed-off-by: Whit Waldo --- 20250422-BRS-workflow-versioning.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/20250422-BRS-workflow-versioning.md b/20250422-BRS-workflow-versioning.md index 2035293..dbbb311 100644 --- a/20250422-BRS-workflow-versioning.md +++ b/20250422-BRS-workflow-versioning.md @@ -77,7 +77,7 @@ internal sealed SampleWorkflow : Workflow } await context.CreateTimer(TimeSpan.FromMinutes(15)); - context.ContinueAsNext(id, false); + context.ContinueAsNew(id, false); return null; } From a8e02eb8c02f6102a185950aae36b35e5bc651be Mon Sep 17 00:00:00 2001 From: Whit Waldo Date: Mon, 22 Sep 2025 03:51:23 -0500 Subject: [PATCH 3/7] Fixed link typo Signed-off-by: Whit Waldo --- 20250422-BRS-workflow-versioning.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/20250422-BRS-workflow-versioning.md b/20250422-BRS-workflow-versioning.md index dbbb311..a940dc1 100644 --- a/20250422-BRS-workflow-versioning.md +++ b/20250422-BRS-workflow-versioning.md @@ -116,7 +116,7 @@ Second, I propose that the SDKs reflect an optional `DaprVersioningOptions` conf These options provide the following properties (to start with). If the option is configured (regardless of the following options, versioning is enabled on that app: - `MapMultiAppTypes`: This is primarily imagined to align with the -Multi-App Run proposal](https://github.com/dapr/proposals/pull/76) in that it would accept a `List` +[Multi-App Run proposal](https://github.com/dapr/proposals/pull/76) in that it would accept a `List` defined by (in .NET at least) `public sealed record MultiAppWorkflowMap(string WorkflowType, string AppId);` in which the `WorkflowTypeWithoutVersion`: reflects the name of the class implementing the workflow (optionally absent its version number) and the `AppId` contains the identifier of the application containing the type. In line with that proposal, From 3d6e71fbf8fd3873113a7e21d33a2719f05ba534 Mon Sep 17 00:00:00 2001 From: Whit Waldo Date: Mon, 22 Sep 2025 03:55:11 -0500 Subject: [PATCH 4/7] Removed erroneous colon Signed-off-by: Whit Waldo --- 20250422-BRS-workflow-versioning.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/20250422-BRS-workflow-versioning.md b/20250422-BRS-workflow-versioning.md index a940dc1..eb0249f 100644 --- a/20250422-BRS-workflow-versioning.md +++ b/20250422-BRS-workflow-versioning.md @@ -118,7 +118,7 @@ options, versioning is enabled on that app: - `MapMultiAppTypes`: This is primarily imagined to align with the [Multi-App Run proposal](https://github.com/dapr/proposals/pull/76) in that it would accept a `List` defined by (in .NET at least) `public sealed record MultiAppWorkflowMap(string WorkflowType, string AppId);` in which the -`WorkflowTypeWithoutVersion`: reflects the name of the class implementing the workflow (optionally absent its version +`WorkflowTypeWithoutVersion` reflects the name of the class implementing the workflow (optionally absent its version number) and the `AppId` contains the identifier of the application containing the type. In line with that proposal, when the request comes into the SDK associated with that application, if it supports versioning, it is responsible for referring to its own mapping registration to understand which type, specifically, to direct the request to. From 8524404b553d6dccecc7993f9e66ad5d055d2ca2 Mon Sep 17 00:00:00 2001 From: Whit Waldo Date: Mon, 22 Sep 2025 04:21:52 -0500 Subject: [PATCH 5/7] Added overload for per-type versioning with configurable version strategy Signed-off-by: Whit Waldo --- 20250422-BRS-workflow-versioning.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/20250422-BRS-workflow-versioning.md b/20250422-BRS-workflow-versioning.md index eb0249f..a026ab4 100644 --- a/20250422-BRS-workflow-versioning.md +++ b/20250422-BRS-workflow-versioning.md @@ -160,6 +160,9 @@ var builder = Host.CreateDefaultBuilder(args).ConfigureServices(services => { options.RegisterWorkflow(); options.RegisterWorkflow(); //This is the newer of the registered workflows + + // Allows per-type version registration (with different strategies) even if `WithVersioning` isn't specified + options.RegisterVersionedWorkflow(new VersionedNumericalSuffixOptions()); }); }); ``` From 95c3ffea943290b75de017aeee031fd0aeeea4e8 Mon Sep 17 00:00:00 2001 From: Whit Waldo Date: Mon, 22 Sep 2025 05:30:39 -0500 Subject: [PATCH 6/7] Removed workflow re-run proposal as re-run has been implemented separately in another proposal already Signed-off-by: Whit Waldo --- 20250422-BRS-workflow-versioning.md | 63 +++++++++-------------------- 1 file changed, 20 insertions(+), 43 deletions(-) diff --git a/20250422-BRS-workflow-versioning.md b/20250422-BRS-workflow-versioning.md index a026ab4..6ef14ee 100644 --- a/20250422-BRS-workflow-versioning.md +++ b/20250422-BRS-workflow-versioning.md @@ -97,31 +97,29 @@ the existing "blue" types are known to have stopped running and have redeployed type from their next deployment altogether. However, in this very likely scenario, the developer never has an opportunity to swap out Workflow types. -Now, had the developer thought ahead about this in 1.15, they could have introduced an activity that performed some sort -of reflective analysis of its own service or used some sort of Workflow registry to determine that there was a newer type -available to swap to, then scheduled a one-time Dapr Job with the updated Workflow type name as the payload and ended -the current workflow in order to have the job invoke the new Workflow type, but this introduces quite a lot of complexity. -As we're trying to simplify distributed application development with Dapr, I propose that there's a simpler approach -available to us here that introduces a powerful mechanism to swap between Workflow types with minimal changes by -developers to their existing workflows. +Now, had the developer thought ahead about this in a previous version, they had options to implement this themselves. +They could have: +- Introduced an activity that performed some reflective analysis of its own service, or +- Used some sort of Workflow registry to determine that there was a newer type available to swap to. + +It could then have scheduled a one-time Dapr Job with the updated Workflow type name as the payload +and ended the current workflow to have the job invoke the new Workflow type. However, this introduces quite a lot of +complexity. Since we're trying to simplify distributed application development with Dapr, I propose that there's a +simpler approach available here that introduces a powerful mechanism to swap between Workflow types with minimal changes +by developers to their existing workflows. ## Implementation Details -I propose that we make relatively small changes to Dapr Workflows APIs externally. +I propose that we make relatively small changes to Dapr Workflows APIs externally in the SDKs and their Durable Task +upstream SDKs. First, we introduce and document a new convention where workflow types are versioned by appending a numerical value to the end of their names. Higher numerical values represent later versions (e.g. `ExampleWorkflow100` represents a later -version of the `ExampleWorkflow10` type). +version of the `ExampleWorkflow10` type). Other strategies might be accommodated by the SDKs themselves, but this is the +approach I'll use throughout the rest of this document. Second, I propose that the SDKs reflect an optional `DaprVersioningOptions` configuration value during registration. These options provide the following properties (to start with). If the option is configured (regardless of the following options, versioning is enabled on that app: -- `MapMultiAppTypes`: This is primarily imagined to align with the -[Multi-App Run proposal](https://github.com/dapr/proposals/pull/76) in that it would accept a `List` -defined by (in .NET at least) `public sealed record MultiAppWorkflowMap(string WorkflowType, string AppId);` in which the -`WorkflowTypeWithoutVersion` reflects the name of the class implementing the workflow (optionally absent its version -number) and the `AppId` contains the identifier of the application containing the type. In line with that proposal, -when the request comes into the SDK associated with that application, if it supports versioning, it is responsible -for referring to its own mapping registration to understand which type, specifically, to direct the request to. - `ExcludeTypes`: A `IReadOnlyList` containing the names of workflow types (optionally absent its version number) that should be excluded from version routing and which should always invoke precisely the named type indicated. @@ -133,23 +131,6 @@ place. This means that there are only two places in which this should happen tod external events) ensuring we don't end up with a workflow that does not match its preserved event history. 2) When the runtime calls into the SDK to invoke a re-run of a workflow against a specific named workflow type. -### Re-run Support -Additionally, the workflow context should be updated with a settable string property that reflects the latest type -including version) used to run the workflow. While this wouldn't be necessary to facilitate this idea itself, it is -necessary to support the re-run workflow proposal and its capabilities. Reason being, the concern about versioning with -ad-hoc mid-workflow runs is that the underlying logic might change and the runtime has no knowledge about the specific -type being executed (as that's entirely managed in the SDK). By naming the type in the workflow, it means we don't have -to make any changes to the placement table or runtime routing logic. - -Rather, thinking through how a replay would work, the developer would pick a mid-workflow activity to re-run from -within a workflow ID. The re-run API would facilitate cloning the event log and actor metadata (including this workflow -type) for that workflow into a separate workflow ID on he new actor. When the actor calls back into the workflow SDK to -run the work from the specified activity within that new workflow ID, it should also specify this type value so the SDK -can route to that specific type (as though it were excluded per the configuration options above) so there is no -versioning impact to the re-run workflow itself and it always runs against a consistent type. - -![Workflow Re-run Clone](./resources/20250422-BRS-workflow-versioning/RerunClone.jpg) - ### SDK Example Here's an example of what this might look like during the registration process in C#: @@ -194,6 +175,8 @@ The following decision chart illustrates how this might change (assuming the re- ![Workflow invocation flowchart](./resources/20250422-BRS-workflow-versioning/VersioningFlowchart.jpg) +Of course, the flowchart could be modified to support multiple versioning strategies and on a per-type basis, but I have +left those possibilities off the image for brevity. ### Runtime Really the only thing required by the runtime is adding the workflow type to the workflow state metadata for @@ -214,13 +197,7 @@ to a frequently raised issue by the community in a straightforward and simple wa It maintains the deterministic nature of the workflows themselves and doesn't introduce any elaborate routing rules or other complexity that might lead to this idea being underutilized in practice. Most of all, it doesn't change anything -about the fundamental nature of how the workflows themselves execute as a whole and leaves us the broadest door possible -to effectuating a point-in-time re-execution approach that builds atop this behavior and yields a consistent workflow -state while benefiting from the registry of available types already registered via the Workflow SDKs. - -## Additional Considerations -- The Multi-App run proposal envisions being able to invoke workflows and activities across applications. It should be -mentioned in relevant documentation that if any of the cross-referenced applications has enabled versioning, this may -interfere with expectations about what the workflow itself actually does (much like swapping out what activities do and -their various side effects), but the functionality is worth having in Dapr. This option should be made available to -developers and the ramifications of using simply made clear. \ No newline at end of file +about the fundamental nature of how the workflows themselves execute as a whole. It instead leaves us the broadest door +possible to effectuating a point-in-time re-execution approach that builds atop this behavior. Finally, it yields a +consistent workflow state while benefiting from the registry of available types already registered via the Workflow +SDKs. \ No newline at end of file From 3e4eb0cf9dfbad1e117d70457b84a0df48416b03 Mon Sep 17 00:00:00 2001 From: Whit Waldo Date: Mon, 22 Sep 2025 05:53:35 -0500 Subject: [PATCH 7/7] Modified proposal to refresh how it is implemented against the SDK and runtime Signed-off-by: Whit Waldo --- 20250422-BRS-workflow-versioning.md | 62 +++++++++++++++++++---------- 1 file changed, 42 insertions(+), 20 deletions(-) diff --git a/20250422-BRS-workflow-versioning.md b/20250422-BRS-workflow-versioning.md index 6ef14ee..5a39f2d 100644 --- a/20250422-BRS-workflow-versioning.md +++ b/20250422-BRS-workflow-versioning.md @@ -149,9 +149,25 @@ var builder = Host.CreateDefaultBuilder(args).ConfigureServices(services => { ``` ## What needs to change? -### Protos -This requires more research into how the SDK interacts with the runtime, but I expect the necessary changes are minimal -given that the majority of what's happening in this proposal happens within each of the SDKs. +### Runtime/Protos +Only thing required by the runtime is adding the workflow type (with version) to the workflow state metadata and to +inbound calls to the workflow SDK (to understand if versioning is to be overridden by the specified name or not). + +It's proposed that this is a different field than `name` so `name` continues to reflect the base type name absent +version information. + +If a workflow is running and the application crashes, the runtime will need to re-run the workflow using the same +instance ID, input and will need to specify this type (including version) to override any versioning on the SDK. +Otherwise, if the workflow type were to suddenly swap out here, the re-run would not be deterministic and (should/would) +fail. + +If the workflow is ever started via `ContinueAsNew` or `ScheduleWorkflowAsync`, this workflow type with the version +should be forgotten as routing should be (briefly) left to the SDK once again. + +### Durable Task SDKs (per-language)) +The runtime needn't know anything about whether versioning has been enabled on a given app as it simply needs to know +the name of the workflow type to invoke. Everything downstream of the runtime calling the SDK to invoke this workflow +is an implementation detail of the SDK and it will be responsible for routing the request to the appropriate type. Tracing through how `ContinueAsNew` works in the .NET SDK, it relies on the `TaskOrchestrationContext` implemented in the `DurableTask.Core` library. This kicks off a new workflow using the same instance ID and input without any of @@ -159,15 +175,27 @@ the corresponding artifacts (in-process tasks, events, etc.). This is primarily clients themselves and not in the runtime as those clients will eventually just call `StartWorkflowAlpha1`. To that end, `StartWorkflowRequest` allows for a map of `` options (under the `options` property) that -were originally intended to configure the workflow component. I propose repurposing that here to pass the payload of the -`DaprVersioningOptions` as key/value pairs back to the runtime to provide it context whenever `ContinueAsNew` is used -(as this isn't implemented at the runtime, but at the SDK level). This doesn't require a protos change and only -necessitates a change to each language SDK. +were originally intended to configure the workflow component and this should be repurposed to receive the target +version information, to accommodate type routing in the Durable Task implementation. + +### Multi-App Support +A call made to invoke a Workflow type on a given `AppId` is made to the runtime and when that request is received by the +app SDK, it will handle versioning precisely as it was configured to do at the app startup in a way entirely invisible +to the caller. This is because none of the versioning information is made available to the runtime as it exists only +in the SDK implementation. -Finally, the only other change to a proto necessary here might be the one proposed in the -[Multi-App Workflow]() to specify the application ID the type should be -discovered within. This can be specified in the `LimitTypesToApplicationId` property I include in the -`DaprVersioningOptions` example above and included in that mapping back to the workflow `options` property. +As such, this proposal is fully compatible with the Multi-App Run proposal and continues to require no runtime changes. + +### Re-run Support +The runtime will call back into a workflow to re-run it. + +The SDK would either know that this is a re-run and not a fresh instantiation, nor would the SDK know which specific +version of the workflow type previously ran. + +As such, when a request is received to re-run a particular workflow, the SDK should apply the same versioning +configuration it would apply to any other fresh workflow invocation request (e.g., `ScheduleNewWorkflow` or +`ContinueAsNew`). It should then run the re-run operation against the latest version of the workflow type, per the +configured versioning strategy. ### SDKs A change is necessary to the upstream durable task client and worker and how it routes inbound workflow invocations. @@ -178,21 +206,15 @@ The following decision chart illustrates how this might change (assuming the re- Of course, the flowchart could be modified to support multiple versioning strategies and on a per-type basis, but I have left those possibilities off the image for brevity. -### Runtime -Really the only thing required by the runtime is adding the workflow type to the workflow state metadata for -re-run purposes and changing it to reflect whenever the workflow actor is invoked again. Otherwise, apart from passing -it along into the app's SDK to start a workflow (along with whatever context is provided along with the re-run -invocation). But I think that's it from the runtime perspective. - ### Documentation -The documentation needs an update to provide as many low-level details about versioning as possible. Here, that should -specifically detail the convention previously articulated, how each of the SDKs accommodate this and how this is +The SDK documentation needs an update to provide as many low-level details about versioning as possible. Here, that should +specifically detail the convention(s) previously articulated, how each of the SDKs accommodate this and how this is implicated across the various other emergent features of Dapr Workflows. ## Benefits The implementation here is simple and sets up a starting point for a more elaborate versioning approach using patching and/or feature flags. I believe it also enables Josh's proposal for workflow re-runs atop this routed solution -to solve the underlying workflow type mismatch inherent to his proposal. Finally, it also provides a solution +to solve the underlying workflow type mismatch possibility inherent to his proposal. Finally, it also provides a solution to a frequently raised issue by the community in a straightforward and simple way (from the developers' perspective). It maintains the deterministic nature of the workflows themselves and doesn't introduce any elaborate routing rules or