Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions openapi/openapiv2.json
Original file line number Diff line number Diff line change
Expand Up @@ -8846,6 +8846,11 @@
"eagerWorkerDeploymentOptions": {
"$ref": "#/definitions/v1WorkerDeploymentOptions",
"description": "Deployment Options of the worker who will process the eager task. Passed when `request_eager_execution=true`."
},
"taskDispatchRevisionNumber": {
"type": "string",
"format": "int64",
"description": "TODO (Shivam): Add a helpful commment here."
}
}
},
Expand Down Expand Up @@ -15174,6 +15179,11 @@
"eagerWorkerDeploymentOptions": {
"$ref": "#/definitions/v1WorkerDeploymentOptions",
"description": "Deployment Options of the worker who will process the eager task. Passed when `request_eager_execution=true`."
},
"taskDispatchRevisionNumber": {
"type": "string",
"format": "int64",
"description": "TODO (Shivam): Add a helpful commment here."
}
}
},
Expand Down
3 changes: 3 additions & 0 deletions openapi/openapiv3.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12194,6 +12194,9 @@ components:
allOf:
- $ref: '#/components/schemas/WorkerDeploymentOptions'
description: Deployment Options of the worker who will process the eager task. Passed when `request_eager_execution=true`.
taskDispatchRevisionNumber:
type: string
description: 'TODO (Shivam): Add a helpful commment here.'
StartWorkflowExecutionResponse:
type: object
properties:
Expand Down
60 changes: 45 additions & 15 deletions temporal/api/history/v1/message.proto
Original file line number Diff line number Diff line change
Expand Up @@ -136,21 +136,51 @@ message WorkflowExecutionStartedEventAttributes {
reserved 36;
reserved "parent_pinned_deployment_version";

// If present, the new workflow should start on this version with pinned base behavior.
// Child of pinned parent will inherit the parent's version if the Child's Task Queue belongs to that version.
//
// New run initiated by workflow ContinueAsNew of pinned run, will inherit the previous run's version if the
// new run's Task Queue belongs to that version.
//
// New run initiated by workflow Cron will never inherit.
//
// New run initiated by workflow Retry will only inherit if the retried run is effectively pinned at the time
// of retry, and the retried run inherited a pinned version when it started (ie. it is a child of a pinned
// parent, or a CaN of a pinned run, and is running on a Task Queue in the inherited version).
//
// Pinned override is inherited if Task Queue of new run is compatible with the override version.
// Override is inherited separately and takes precedence over inherited base version.
temporal.api.deployment.v1.WorkerDeploymentVersion inherited_pinned_version = 37;
// Inherited versioning information from parent or previous workflow execution.
// These two behaviors are mutually exclusive - a workflow either inherits a version
// to which it is pinned to or a version on which it starts its first workflow task.
oneof inherited_versioning_info {
// If present, the new workflow should start on this version with pinned base behavior.
// Child of pinned parent will inherit the parent's version if the Child's Task Queue belongs to that version.
//
// New run initiated by workflow ContinueAsNew of pinned run, will inherit the previous run's version if the
// new run's Task Queue belongs to that version.
//
// New run initiated by workflow Cron will never inherit.
//
// New run initiated by workflow Retry will only inherit if the retried run is effectively pinned at the time
// of retry, and the retried run inherited a pinned version when it started (ie. it is a child of a pinned
// parent, or a CaN of a pinned run, and is running on a Task Queue in the inherited version).
//
// Pinned override is inherited if Task Queue of new run is compatible with the override version.
// Override is inherited separately and takes precedence over inherited base version.
temporal.api.deployment.v1.WorkerDeploymentVersion inherited_pinned_version = 37;

// If present, the new workflow will commence with AutoUpgrade behavior on the current version of it's Task Queue's Deployment. UserData inconsistencies put forward
// by the eventual consistencies of the matching partitions shall be resolved with the help of the revision number and source deployment version passed in this field.
// In other words, the first workflow task of the new run will be dispatched either to the source deployment version or the current deployment version of the Task Queue's Deployment.
// After the first workflow task, the effective behavior of the workflow depends on worker sent values in subsequent workflow tasks.
// Note: This field is only populated if the Task Queue on which the new run is scheduled belongs to a deployment on which the parent run is running.
//
// New run initiated by workflow ContinueAsNew of an AutoUpgrade run, or a child workflow of an AutoUpgrade parent, will inherit the
// previous run's AutoUpgrade behavior and the source deployment version passed in this field.
// Both Matching and History service shall then use the revision number to determine the deployment version on which the new run will dispatch it's first workflow task.
// This deployment version shall either be the source deployment version, passed down from the parent run, or the current deployment version of the Task Queue's Deployment.
//
// New run initiated by workflow Cron will never inherit the AutoUpgrade behavior.
//
// New run initiated by workflow Retry will only inherit this field if the retried run is effectively AutoUpgrade at the time
// of retry, and the retried run inherited AutoUpgrade behavior when it started (ie. it is a child of a AutoUpgrade
// parent, or a CaN of a AutoUpgrade run, and is running on the same deployment as that of the parent).
InheritedAutoUpgradeInfo inherited_auto_upgrade_info = 39;
}

message InheritedAutoUpgradeInfo {
// The source deployment version of the parent workflow.
temporal.api.deployment.v1.WorkerDeploymentVersion source_deployment_version = 1;
// The revision number of the source deployment version of the parent workflow.
int64 source_deployment_revision_number = 2;
}

// A boolean indicating whether the SDK has asked to eagerly execute the first workflow task for this workflow and
// eager execution was accepted by the server.
Expand Down
8 changes: 7 additions & 1 deletion temporal/api/workflow/v1/message.proto
Original file line number Diff line number Diff line change
Expand Up @@ -160,8 +160,14 @@ message WorkflowExecutionVersioningInfo {
//
// For child workflows of Pinned parents, this will be set to the parent's Pinned Version when
// the child starts, so that the child's first workflow task goes to the same Version as the parent.
//
// For child workflows of AutoUpgrade parents, this will be set to the deployment version on which the parent
// is running prior to the dispatching of the child's first workflow task. The child's first workflow task
// will finally be dispatched to either this source deployment version or the current deployment version of it's
// Task Queue's Deployment.
//
// Note that if `versioning_override.behavior` is PINNED then `versioning_override.pinned_version`
// will override this value.
// will override this value.
temporal.api.deployment.v1.WorkerDeploymentVersion deployment_version = 7;
// Present if user has set an execution-specific versioning override. This override takes
// precedence over SDK-sent `behavior` (and `version` when override is PINNED). An
Expand Down
2 changes: 2 additions & 0 deletions temporal/api/workflowservice/v1/request_response.proto
Original file line number Diff line number Diff line change
Expand Up @@ -196,6 +196,8 @@ message StartWorkflowExecutionRequest {
temporal.api.common.v1.Priority priority = 27;
// Deployment Options of the worker who will process the eager task. Passed when `request_eager_execution=true`.
temporal.api.deployment.v1.WorkerDeploymentOptions eager_worker_deployment_options = 28;
// TODO (Shivam): Add a helpful commment here.
int64 task_dispatch_revision_number = 29;
}

message StartWorkflowExecutionResponse {
Expand Down
Loading