Skip to main content

Self-hosted Temporal Nexus

SUPPORT, STABILITY, and DEPENDENCY INFO

Temporal Nexus is now Generally Available. Learn why you should use Nexus in the evaluation guide.

Temporal Nexus allows you to reliably connect Temporal Applications. It was designed with Durable Execution in mind and enables each team to have their own Namespace for improved modularity, security, debugging, and fault isolation.

Nexus Overview

Nexus Overview

Enable Nexus

To use Nexus in your self-hosted deployment, update the server's static configuration file and set the required dynamic configuration. Nexus is only supported in single cluster setups at this time. For additional information on operating Nexus workloads in your self-hosted cluster, see Nexus Architecture.

note

Replace $PUBLIC_URL with a URL value that's accessible to external callers or internally within the cluster. Currently, external Nexus calls are considered experimental so it should be safe to use the address of an internal load balancer for the Frontend Service.

To enable Nexus in your deployment:

  1. Ensure that the server's static configuration file enables the HTTP API.

    services:
    frontend:
    rpc:
    # NOTE: keep other fields as they were
    httpPort: 7243

    clusterMetadata:
    # NOTE: keep other fields as they were
    clusterInformation:
    active:
    # NOTE: keep other fields as they were
    httpAddress: $PUBLIC_URL:7243
  2. Set the required dynamic configuration to use the system callback URL.

    component.nexusoperations.useSystemCallbackURL:
    - value: true

    NOTE: On servers older than 1.30.X, the callback endpoint template and allowed addresses must be configured instead. See the dynamic configuration reference for details on component.nexusoperations.callback.endpoint.template and component.callbacks.allowedAddresses.

Build and use Nexus Services

Nexus has a familiar programming model to build and use Nexus Services using the Temporal SDK. The Nexus Operation lifecycle supports both synchronous and asynchronous Operations. Nexus Operations can be implemented with Temporal primitives, like a Workflow, or execute arbitrary code.

Learn more