Skip to content

docs: self-hosted setup for serverless workers#4476

Open
lennessyy wants to merge 11 commits intofeat/serverless-worker-prereleasefrom
feat/serverless-worker-oss-prerequisites
Open

docs: self-hosted setup for serverless workers#4476
lennessyy wants to merge 11 commits intofeat/serverless-worker-prereleasefrom
feat/serverless-worker-oss-prerequisites

Conversation

@lennessyy
Copy link
Copy Markdown
Contributor

@lennessyy lennessyy commented Apr 22, 2026

Summary

  • Adds a self-hosted setup page covering prerequisites for running Serverless Workers on a self-hosted Temporal Service with AWS Lambda
  • Covers enabling the Worker Controller via dynamic config, configuring AWS credentials, and creating the Lambda invocation role
  • Includes a CloudFormation template adapted for self-hosted (uses TemporalIamRoleArn parameter instead of hardcoded Temporal Cloud accounts)

Test plan

  • Verify the dynamic config keys match the source code in temporal-auto-scaled-workers
  • Review CloudFormation template with Stefan
  • Confirm page renders correctly in sidebar

🤖 Generated with Claude Code

┆Attachments: EDU-6254 docs: self-hosted setup for serverless workers

Covers enabling the Worker Controller via dynamic config, configuring
AWS credentials for the Temporal server, and creating the Lambda
invocation role with a CloudFormation template adapted for self-hosted.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@lennessyy lennessyy requested a review from a team as a code owner April 22, 2026 23:12
@vercel
Copy link
Copy Markdown

vercel Bot commented Apr 22, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
temporal-documentation Ready Ready Preview, Comment Apr 25, 2026 0:13am

Request Review

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 22, 2026

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add how to view WCI workflows using TemporalNamespaceDivision filter
to both the self-hosted setup page and the deploy guide. Add
aws sts get-caller-identity tip for finding the server's IAM ARN.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
lennessyy and others added 2 commits April 23, 2026 10:59
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

## Enable the Worker Controller {#enable-worker-controller}

The Worker Controller is the server component that monitors Task Queues and invokes compute providers.
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Suggested change
The Worker Controller is the server component that monitors Task Queues and invokes compute providers.
The Worker Controller Instance (WCI) is the server component that monitors Task Queues and invokes compute providers.


The Temporal Service watches the dynamic config file for changes and applies updates without a restart.

### Worker Controller dynamic config reference {#dynamic-config-reference}
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

This needs to go to dynamic config page, not here.

- Self-hosted
---

Temporal Cloud handles Serverless Worker infrastructure automatically.
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

We don't need this first paragraph.


Use this role ARN when creating the Worker Deployment Version.

## Verify the Worker Controller {#verify-worker-controller}
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

On second thought I think we don't need this section. Just a ## Next steps section that links to AWS Lambda deploy guide is enough,

- Remove first paragraph (Cloud comparison)
- Add brief overview of the three setup steps
- Use "Worker Controller Instance (WCI)" instead of "Worker Controller"
- Move dynamic config reference table out (belongs on dynamic config page)
- Replace verify section with Next steps linking to deploy guide

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- A Temporal Cloud account or a self-hosted Temporal Service vx.xx.x or later.
- Your Temporal Service frontend must be reachable from the Lambda execution environment. For Temporal Cloud, no additional configuration is needed. For self-hosted deployments on a private network, configure the Lambda function with [VPC access](https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html) to reach the Temporal frontend.
- For self-hosted deployments, complete the [self-hosted setup](/production-deployment/worker-deployments/serverless-workers/self-hosted-setup) before following this guide.
- The Temporal Service frontend must be reachable from the Lambda execution environment. For Temporal Cloud, no additional configuration is needed. For self-hosted deployments on a private network, configure the Lambda function with [VPC access](https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html) to reach the Temporal frontend.
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Suggested change
- The Temporal Service frontend must be reachable from the Lambda execution environment. For Temporal Cloud, no additional configuration is needed. For self-hosted deployments on a private network, configure the Lambda function with [VPC access](https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html) to reach the Temporal frontend.
- The Temporal Service frontend must be reachable from the Lambda execution environment. For Temporal Cloud, no additional configuration is needed. For self-hosted deployments on a private network, use features like [VPC access](https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html) to reach the Temporal frontend.

This page covers the prerequisites for running [Serverless Workers](/serverless-workers) on a self-hosted Temporal
Service with AWS Lambda:

1. Enable the Worker Controller Instance (WCI) on the server through dynamic configuration.
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Suggested change
1. Enable the Worker Controller Instance (WCI) on the server through dynamic configuration.
1. Enable the Worker Controller on the server through dynamic configuration.


## Enable the Worker Controller {#enable-worker-controller}

The Worker Controller Instance (WCI) is the server component that monitors Task Queues and invokes compute providers. It
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Suggested change
The Worker Controller Instance (WCI) is the server component that monitors Task Queues and invokes compute providers. It
The Worker Controller is the server component that monitors Task Queues and invokes compute providers. It

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

My concern with this is that users will confuse this with https://github.com/temporalio/temporal-worker-controller

These are not the same thing right😅? At least per my understanding these are very different things. But we've already named the Kubernetes thing Worker Controller. Even though this is an internal component, it's a nice one to explain to users so they can understand how it works. It would be great if we can avoid a complete name collision

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

yeah, our naming in this department has been sub-optimal. Let's leave it as WCI - but make sure that it is always WCI and never worker controller?!

Co-authored-by: Stefan Richter <stefan@02strich.de>
- no-sync
```

To enable the Worker Controller for specific Namespaces instead of globally:
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Suggested change
To enable the Worker Controller for specific Namespaces instead of globally:
To enable the Worker Controller Instance (WCI) for specific Namespaces instead of globally:

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