Skip to main content
This section covers deploying Output workflows to a production environment. Whether you’re running a single worker or scaling across multiple instances, the deployment architecture stays the same.

What you’re deploying

An Output deployment consists of two core services, with an optional third for remote tracing: The API is a lightweight HTTP server that accepts workflow execution requests, routes them to the Temporal backend, and returns results. It ships as a pre-built Docker image so there’s no custom code to maintain. The Worker is the core of your deployment — it contains your workflow code and connects to the Temporal backend for orchestration. Workers scale horizontally; you can add more instances to handle increased load without changing your workflow code.
These guides assume you’re using Temporal Cloud for workflow orchestration. If you need help setting up Temporal Cloud, see the Temporal Cloud documentation.

Prerequisites

Before deploying to any platform, ensure you have:
  • A Temporal backend with a dedicated namespace (e.g. Temporal Cloud)
  • Your workflow repository on GitHub
  • API keys for any services your workflows use (Anthropic, OpenAI, etc.)
  • The WorkspaceId search attribute registered on that namespace (see below)

Register the WorkspaceId search attribute

The API attaches a WorkspaceId search attribute to a workflow start whenever its input includes a workspaceId string, so runs for a workspace can be found without knowing individual workflow IDs. ./run.sh dev and ./run.sh prod register it automatically against the local Temporal server. Every other environment — staging, Temporal Cloud, or any namespace not started by this repo’s Docker Compose files — needs it registered once, manually, by whoever administers that namespace:
This is safe to re-run: creating an attribute that already exists with the same name and type is a no-op. If the attribute isn’t registered, the API doesn’t fail the request — it logs a warning and starts the workflow without the search attribute, so that workflow just won’t be findable by workspace until the attribute is registered.

Platform guides

Choose your deployment platform:

Railway

Railway. Simple Docker-based deployments with automatic scaling.

Render

Render. Infrastructure-as-code deployments with a single render.yaml Blueprint.

Advanced

Advanced. Remote tracing with Redis and S3 for production debugging.

Next steps

Tracing

Tracing. Configure production tracing and S3 storage.

Error Handling

Error Handling. Handle failures gracefully in production.