Skip to content

feat(common): add TaskDef.regionDurable and RerunWorkflowRequest.rerunParentDownstreamTasks flags - #1551

Open
manan164 wants to merge 4 commits into
mainfrom
feat/taskdef-region-durable
Open

feat(common): add TaskDef.regionDurable and RerunWorkflowRequest.rerunParentDownstreamTasks flags#1551
manan164 wants to merge 4 commits into
mainfrom
feat/taskdef-region-durable

Conversation

@manan164

@manan164 manan164 commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

Two independent request/definition flags, both defaulting to false so existing behaviour is unchanged. Neither does anything on its own — each is read by the engine path that implements it.

TaskDef.regionDurable

Marks 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.rerunParentDownstreamTasks

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. 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 existing enforceSchema precedent. An annotated field needs a matching entry in its .proto and in AbstractProtoMapper; adding the annotation without both would silently drop the value over gRPC. Both flags are JSON/REST-only for now.

…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.
@manan164 manan164 changed the title feat(common): add TaskDef.regionDurable flag feat(common): add TaskDef.regionDurable and RerunWorkflowRequest.rerunParentDownstreamTasks flags Aug 21, 2026
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.
* missed). Defaults to false (locally durable only).
*/
@ProtoField(id = 26)
private boolean regionDurable;

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we follow the same enum as workflow start request for consistency mode?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants