Skip to content

Added start delay to StartActivityExecutionRequest#749

Closed
fretz12 wants to merge 45 commits intomasterfrom
fredtzeng/start-delay
Closed

Added start delay to StartActivityExecutionRequest#749
fretz12 wants to merge 45 commits intomasterfrom
fredtzeng/start-delay

Conversation

@fretz12
Copy link
Copy Markdown
Contributor

@fretz12 fretz12 commented Mar 31, 2026

What changed?
Added start delay to StartActivityExecutionRequest

Why?
We need this field to support start delay for standalone activities

jaypipes and others added 16 commits March 18, 2026 08:50
feature: introduce compute config

Introduces a new `compute.v1` package of proto messages that house the
various instructions and information needed by worker control plane
controllers

`temporal.api.compute.v1.ComputeConfig` has three fields, `task_queues`,
`provider` and `scaler` that store the configuration information for the
server-owned worker setup and how the worker control plane should treat
worker lifecycle events (such as when no pollers exist for a task queue
that has received a task).

The `temporal.api.compute.v1.ComputeConfig.task_queues` field is a list
of task queue name and task type tuples. When Temporal Server receives a
task with any of these name+type combinations and finds no active
pollers, it will trigger a launch of a server-owned Worker using the
configuration information in the `provider` field.

The `temporal.api.compute.v1.ComputeConfig.provider` field is of type
`temporal.api.compute.v1.ComputeProvider`. This message is a simple
wrapper around a blob of bytes that contains configuration settings for
a worker control plane controller.

The configuration settings for the worker control plane controller are
specific to different compute providers. The first compute provider we
are modeling is AWS Lambda, and the `ProviderDetailAWSLambda` message
houses the ARN of the AWS Lambda Function to be invoked and an optional
ARN of the IAM Role that should be assumed by a worker control plane
controller when invoking the function.

The `temporal.api.compute.v1.ComputeConfig.scaler` field is  of type
`temporal.api.compute.v1.ComputeScaler`. This message contains
instructions for when the worker lifecycle controller should scale up or
down the number of workers in a WorkerDeployment or
WorkerDeploymentVersion.

Adds a new field `compute_config` to `WorkerDeploymentInfo` and
`WorkerDeploymentVersionInfo` that contains a
`temporal.api.compute.v1.ComputeConfig` message.

Both WorkerDeployment and WorkerDeploymentVersion have this field
in order to handle versioned workers properly. For example, if the user
wants to use PINNED temporal versioning, they will be creating a
WorkerDeploymentVersion that is specific to, say, a qualified Lambda
Function ARN. Therefore we need to place compute provider configuration
on a WorkerDeploymentVersion in addition to WorkerDeployment.

Adds three new gRPC API methods to WorkflowService:

* `CreateWorkerDeployment` creates a new WorkerDeployment containing the
  supplied compute configuration.
* `UpdateWorkerDeploymentComputeConfig` updates an existing
  WorkerDeployment's compute configuration.
* `UpdateWorkerDeploymentComputeConfig` updates an existing
  WorkerDeploymentVersion's compute configuration.

Signed-off-by: Jay Pipes <[email protected]>

Signed-off-by: Jay Pipes <[email protected]>
* origin/master:
  Add Principal to the base HistoryEvent (#733)
…nfig and enable per-task-type compute providers (#731)

**What changed?**
* Enables validating, creating and updating compute providers at the
worker deployment version level, as that is where it at the most basic
belongs
* Making the scaler config more flexible to allow for pluggable scalers
* Allowing for different compute providers depending on task types and
regions
@fretz12 fretz12 requested review from a team March 31, 2026 23:07
@fretz12 fretz12 marked this pull request as draft March 31, 2026 23:22
@semgrep-managed-scans
Copy link
Copy Markdown

Semgrep found 1 missing-explicit-permissions finding:

  • .github/workflows/trigger-api-go-update.yml

No explicit GITHUB_TOKEN permissions found at the workflow or job level. Add a permissions: block at the workflow root (applies to all jobs) or per job with least privilege (e.g., contents: read and only specific writes like pull-requests: write if needed).

fretz12 and others added 19 commits April 3, 2026 12:44
feature: introduce compute config

Introduces a new `compute.v1` package of proto messages that house the
various instructions and information needed by worker control plane
controllers

`temporal.api.compute.v1.ComputeConfig` has three fields, `task_queues`,
`provider` and `scaler` that store the configuration information for the
server-owned worker setup and how the worker control plane should treat
worker lifecycle events (such as when no pollers exist for a task queue
that has received a task).

The `temporal.api.compute.v1.ComputeConfig.task_queues` field is a list
of task queue name and task type tuples. When Temporal Server receives a
task with any of these name+type combinations and finds no active
pollers, it will trigger a launch of a server-owned Worker using the
configuration information in the `provider` field.

The `temporal.api.compute.v1.ComputeConfig.provider` field is of type
`temporal.api.compute.v1.ComputeProvider`. This message is a simple
wrapper around a blob of bytes that contains configuration settings for
a worker control plane controller.

The configuration settings for the worker control plane controller are
specific to different compute providers. The first compute provider we
are modeling is AWS Lambda, and the `ProviderDetailAWSLambda` message
houses the ARN of the AWS Lambda Function to be invoked and an optional
ARN of the IAM Role that should be assumed by a worker control plane
controller when invoking the function.

The `temporal.api.compute.v1.ComputeConfig.scaler` field is  of type
`temporal.api.compute.v1.ComputeScaler`. This message contains
instructions for when the worker lifecycle controller should scale up or
down the number of workers in a WorkerDeployment or
WorkerDeploymentVersion.

Adds a new field `compute_config` to `WorkerDeploymentInfo` and
`WorkerDeploymentVersionInfo` that contains a
`temporal.api.compute.v1.ComputeConfig` message.

Both WorkerDeployment and WorkerDeploymentVersion have this field
in order to handle versioned workers properly. For example, if the user
wants to use PINNED temporal versioning, they will be creating a
WorkerDeploymentVersion that is specific to, say, a qualified Lambda
Function ARN. Therefore we need to place compute provider configuration
on a WorkerDeploymentVersion in addition to WorkerDeployment.

Adds three new gRPC API methods to WorkflowService:

* `CreateWorkerDeployment` creates a new WorkerDeployment containing the
  supplied compute configuration.
* `UpdateWorkerDeploymentComputeConfig` updates an existing
  WorkerDeployment's compute configuration.
* `UpdateWorkerDeploymentComputeConfig` updates an existing
  WorkerDeploymentVersion's compute configuration.

Signed-off-by: Jay Pipes <[email protected]>

Signed-off-by: Jay Pipes <[email protected]>
…nfig and enable per-task-type compute providers (#731)

**What changed?**
* Enables validating, creating and updating compute providers at the
worker deployment version level, as that is where it at the most basic
belongs
* Making the scaler config more flexible to allow for pluggable scalers
* Allowing for different compute providers depending on task types and
regions
@fretz12 fretz12 closed this Apr 3, 2026
@fretz12 fretz12 deleted the fredtzeng/start-delay branch April 3, 2026 19:55
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.

4 participants