feat(common): add TaskDef.regionDurable and RerunWorkflowRequest.rerunParentDownstreamTasks flags - #1551
Open
manan164 wants to merge 4 commits into
Open
feat(common): add TaskDef.regionDurable and RerunWorkflowRequest.rerunParentDownstreamTasks flags#1551manan164 wants to merge 4 commits into
manan164 wants to merge 4 commits into
Conversation
…updates Marks a task type whose updates should be replicated region-durably (commit-then-confirm to the peer region) in an active-active deployment. Defaults to false. Consumed by the enterprise region-durable task-update path; no behavior change on its own.
Rerunning from a task inside a sub-workflow can either re-run just that workflow, or also re-run the downstream tasks of every ancestor. The second is useful when a corrected result has to flow up through the parents, but it re-runs tasks that already completed, so it cannot be the default. Adds the flag defaulting to false, which is the existing behaviour. No proto field, matching enforceSchema and regionDurable — the annotated fields require a matching entry in rerunworkflowrequest.proto and AbstractProtoMapper, and adding one without the other would silently drop the value over gRPC.
The RerunWorkflow RPC takes conductor.proto.RerunWorkflowRequest, so without a proto field a gRPC caller could never set the flag and would silently always get the default. Annotate it and commit the protogen output: the field in rerunworkflowrequest.proto and the two AbstractProtoMapper lines.
TaskDef is a @ProtoMessage and every other field is proto-mapped, so without an id the flag could not travel over gRPC — a client setting it would silently get the default. Annotate it (id 26, the next free one) and commit the protogen output: the field in taskdef.proto and the two AbstractProtoMapper lines.
v1r3n
reviewed
Aug 28, 2026
| * missed). Defaults to false (locally durable only). | ||
| */ | ||
| @ProtoField(id = 26) | ||
| private boolean regionDurable; |
Collaborator
There was a problem hiding this comment.
can we follow the same enum as workflow start request for consistency mode?
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Two independent request/definition flags, both defaulting to
falseso existing behaviour is unchanged. Neither does anything on its own — each is read by the engine path that implements it.TaskDef.regionDurableMarks a task type whose updates should be replicated region-durably in an active-active deployment — committed locally and synchronously confirmed to the peer region(s) before ack, with asynchronous convergence as fallback.
RerunWorkflowRequest.rerunParentDownstreamTasksRerunning from a task inside a sub-workflow can either re-run just that workflow, or also re-run the downstream tasks of every ancestor. The second is useful when a corrected result has to flow up through the parents, but it re-runs tasks that already completed, so it cannot be the default. With the flag off, a rerun continues to touch only the workflow named in the request, leaving ancestors' completed tasks alone.
Note on proto
Neither field is annotated
@ProtoField, matching the existingenforceSchemaprecedent. An annotated field needs a matching entry in its.protoand inAbstractProtoMapper; adding the annotation without both would silently drop the value over gRPC. Both flags are JSON/REST-only for now.