Skip to content

Commit 62fac0e

Browse files
prasekjsundaiKeithB-Temporal
authored
Nexus docs update (#4262)
* nexus docs update Signed-off-by: Phil Prasek <prasek@gmail.com> * update SDK guides description of Signal-With-Start Signed-off-by: Phil Prasek <prasek@gmail.com> * fix build * remove outdated limit number and linked to page * add 2000 in nexus limits listing * Update to address comments * Add TypeScript Otel * backticks added - format Nexus operations for better readability * Fix grammar in EndpointSpec description * organize Nexus files in encyclopedia into dedicated folder * intro narrative paragraph * adding cancellation example back in * Fix punctuation Corrected punctuation in the Nexus description. --------- Signed-off-by: Phil Prasek <prasek@gmail.com> Co-authored-by: Jwahir Sundai <jwahir.sundai@temporal.io> Co-authored-by: KeithB-Temporal <keith.bodin@temporal.io>
1 parent 90efa3e commit 62fac0e

40 files changed

Lines changed: 1572 additions & 1488 deletions

docs/cloud/get-started/namespaces.mdx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -264,9 +264,10 @@ Namespace configuration requires some consideration. Following are some general
264264
- Namespaces can be split along additional boundaries such as service, application, domain or even sub-domain.
265265
- Namespaces should be used to reduce the "blast radius" for mission-critical applications.
266266
- Environments such as production and development usually have requirements for isolation. We recommend that each
267-
environment has its own Namespace. This helps keep production Namespaces secure. It also protects production Namespaces from being throttled due to throughput spikes in development.
268-
- Workflows should use Nexus to communicate across Namespaces with a clean service contract instead of sharing Temporal primitives directly.
269-
- Workflows in the same Namespace can communicate with each other directly.
267+
environment has its own Namespace.
268+
- Namespaces should be used to reduce the "blast radius" for mission-critical applications.
269+
- Use [Nexus](/nexus) to communicate across team, domain, and Namespace boundaries with a clean service contract instead of sharing Temporal primitives directly.
270+
Nexus enables each team to have their own Namespace for improved security, troubleshooting, and fault isolation while sharing capabilities through Nexus Endpoints.
270271

271272
### Examples
272273

docs/cloud/nexus/index.mdx

Lines changed: 10 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
id: index
33
slug: /cloud/nexus
44
title: Nexus
5-
description: Discover Temporal Nexus, a powerful feature for connecting durable executions across team, namespace, region, and cloud boundaries. Nexus also enables each team to have their own namespace for improved security, troubleshooting, and blast radius isolation.
5+
description: Temporal Cloud adds global Nexus Registry, built-in access controls, audit logging, and multi-region connectivity on top of core Nexus.
66
sidebar_label: Temporal Nexus
77
keywords:
88
- Temporal Nexus
@@ -32,48 +32,20 @@ Learn why you should use Nexus in the [evaluation guide](/evaluate/nexus).
3232

3333
:::
3434

35-
[Temporal Nexus](/nexus) allows you to connect Temporal Applications across (and within) isolated Namespaces.
36-
This provides all the benefits of Durable Execution across team and application boundaries with improved modularity, security, debugging, and fault isolation.
37-
Nexus supports cross-team, cross-domain, cross-namespace, multi-region, and multi-cloud use cases.
35+
Temporal Cloud builds on the [core Nexus experience](/nexus) with:
36+
37+
- **Global [Nexus Registry](/nexus/registry)** - Scoped to your entire Account across all Namespaces. Workers in any Namespace can host Nexus Services for others to use.
38+
- **Built-in [access controls](/nexus/registry#configure-runtime-access-controls)** - Restrict which caller Namespaces can use a Nexus Endpoint at runtime.
39+
- **[Audit logging](/cloud/audit-logs)** - Stream Nexus Registry actions (create, update, delete Endpoints) to your audit log integration.
40+
- **Multi-region connectivity** - Nexus requests route across Namespaces within and across AWS and GCP using a global mTLS-secured Envoy mesh. Compatible with [Multi-region Namespaces](/cloud/high-availability#multi-region-replication) as Endpoint targets.
41+
- **[Terraform support](/cloud/terraform-provider#manage-temporal-cloud-nexus-endpoints-with-terraform)** - Manage Nexus Endpoints with the Temporal Cloud Terraform provider.
3842

3943
<CaptionedImage
4044
src="/img/cloud/nexus/nexus-overview-short.png"
4145
title="Nexus Overview"
4246
/>
4347

44-
Temporal Cloud support is built on top of the [core Nexus experience](/nexus) and adds a global Nexus Registry within an Account, enhanced security, and multi-region connectivity within and across AWS and GCP.
45-
46-
:::tip RELATED
47-
48-
- [Evaluate](/evaluate/nexus) why you should use Nexus and learn more about [Nexus use cases](/evaluate/nexus#use-cases).
49-
- [Learn Nexus concepts](/nexus) in the Encyclopedia.
50-
51-
:::
52-
53-
## Global Nexus Registry
54-
55-
The Nexus Registry in Temporal Cloud is scoped to an Account.
56-
Workers in any Namespace can host Nexus Services for others to use within an Account.
57-
58-
## Built-in access controls
59-
60-
Temporal Cloud has built-in Endpoint access controls to restrict which callers can use a Nexus Endpoint.
61-
62-
## Audit logging
63-
64-
Temporal Cloud supports audit log streaming for Nexus Registry actions to create, update, or delete Endpoints.
65-
66-
## Multi-region connectivity
67-
68-
Nexus requests in Temporal Cloud are routed across Namespaces, within and across AWS and GCP, using a global mTLS-secured Envoy mesh.
69-
Built-in Nexus Machinery provides reliable at-least-once execution and Workflow policy can deduplicate requests for exactly-once execution, even across multi-region boundaries.
70-
71-
## Terraform support
72-
73-
The [Terraform provider for Temporal Cloud](/cloud/terraform-provider#manage-temporal-cloud-nexus-endpoints-with-terraform) supports managing Nexus Endpoints.
74-
7548
## Learn more
7649

77-
- [Evaluate](/evaluate/nexus) why you should use Nexus and watch the [Nexus keynote and demo](https://youtu.be/qqc2vsv1mrU?feature=shared&t=2082).
78-
- [Learn key Nexus concepts](/nexus) and how Nexus works in the [Nexus deep dive talk](https://www.youtube.com/watch?v=izR9dQ_eIe4&t=934s)
79-
- Explore [additional resources](/evaluate/nexus#learn-more) to learn more about Nexus.
50+
- [Evaluate Nexus](/evaluate/nexus) | [Keynote and demo](https://youtu.be/qqc2vsv1mrU?feature=shared&t=2082)
51+
- [How Nexus works](/nexus) | [Deep dive talk](https://www.youtube.com/watch?v=izR9dQ_eIe4&t=934s)

docs/cloud/nexus/latency-availability.mdx

Lines changed: 4 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -20,45 +20,15 @@ keywords:
2020
- service level agreement
2121
---
2222

23-
import { CaptionedImage } from '@site/src/components';
24-
2523
:::tip SUPPORT, STABILITY, and DEPENDENCY INFO
2624

2725
Temporal Nexus is now [Generally Available](/evaluate/development-production-features/release-stages#general-availability).
2826
Learn why you should use Nexus in the [evaluation guide](/evaluate/nexus).
2927

3028
:::
3129

32-
Nexus requests (commands, polling) have the same latency SLOs and error rate SLAs as other Worker requests in both the caller and handler Namespaces.
33-
34-
## Latency metrics
35-
36-
Nexus supports various [latency metrics](/nexus/metrics).
37-
38-
## Worker to Temporal Cloud interactions
39-
40-
Nexus interactions between a Worker and Temporal Cloud use the Worker's Namespace gRPC endpoint.
41-
Nexus-related Worker interactions with Temporal Cloud have the same [latency SLOs](/cloud/service-availability#latency) and [availability SLAs](/cloud/sla) as other calls to a Namespaces's gRPC endpoint.
42-
43-
<CaptionedImage
44-
src="/img/cloud/nexus/nexus-workers-short.png"
45-
title="Interaction between Workers and Temporal Cloud"
46-
/>
47-
48-
This applies to the following Nexus-related interactions between a Worker and Temporal Cloud:
49-
50-
- Caller Namespace
51-
- RespondWorkflowTaskCompleted \- schedule a Nexus Operation.
52-
- Handler Namespace
53-
- PollNexusTaskQueue \- get a [Nexus Task](/tasks#nexus-task) to process, for example to start a Nexus Operation.
54-
- RespondNexusTaskCompleted \- report the Nexus Task was successful.
55-
- RespondNexusTaskFailed \- report the Nexus Task failed.
56-
57-
## Nexus connectivity across Namespaces
58-
59-
Nexus connectivity in Temporal Cloud is provided by a global mTLS secured Envoy mesh.
60-
The cross-namespace latency between the caller's Nexus Machinery and the handler's Nexus Machinery varies based on the locality of the caller and handler Namespaces, which may be placed in different regions.
30+
Nexus latency and availability in Temporal Cloud:
6131

62-
Communication between Namespaces in the same region will have lower latency.
63-
Communication across different regions will have higher latency.
64-
Consult the cross-region latency tables for your cloud provider(s) to estimate the latency for Nexus communication across Namespaces in Temporal Cloud.
32+
- **SLOs and SLAs** - Nexus operations (for example, `RespondWorkflowTaskCompleted`, `PollNexusTaskQueue`, `RespondNexusTaskCompleted`, and `RespondNexusTaskFailed`) have the same [latency SLOs](/cloud/service-availability#latency) and [availability SLAs](/cloud/sla) as other Worker requests in both caller and handler Namespaces.
33+
- **[Nexus metrics](/nexus/metrics)** - SDK and Cloud latency metrics for monitoring Nexus performance.
34+
- **Cross-Namespace connectivity** - Traffic routes through a global mTLS-secured Envoy mesh. Same-region Namespaces have low latency; cross-region latency varies by provider. See [secure connectivity](/nexus/security#secure-connectivity).

docs/cloud/nexus/limits.mdx

Lines changed: 8 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -25,37 +25,11 @@ Learn why you should use Nexus in the [evaluation guide](/evaluate/nexus).
2525

2626
:::
2727

28-
Temporal Cloud has default limits for several aspects of Nexus.
29-
Many of these defaults are configurable, so if you need them changed please open a support ticket.
30-
31-
## Rate Limiting
32-
33-
Nexus requests (commands, polling) are counted as part of the overall [Namespace rate limit](/cloud/limits#requests-per-second) in both the caller and handler Namespaces.
34-
35-
## Operational Limits
36-
37-
Nexus has operational limits for things like the maximum number of Nexus Endpoints and the maximum request handler timeout.
38-
39-
### Max Nexus Endpoints
40-
41-
By default, each account is provisioned with a max of 100 Nexus Endpoints.
42-
You can request further increases beyond the initial 100 Endpoint limit by opening a support ticket.
43-
44-
### Workflow Max Nexus Operations
45-
46-
A single Workflow Execution can have a maximum of 30 in-flight Nexus Operations.
47-
48-
See the Nexus Encyclopedia entry for [additional details](/workflow-execution/limits#workflow-execution-nexus-operation-limits).
49-
50-
### Nexus Request Handler Timeout
51-
52-
Nexus Operation handlers have less than 10 seconds to process a single Nexus start or cancel request.
53-
Handlers should observe the context deadline and ensure they do not exceed it.
54-
This includes fully processing a synchronous Nexus operation and starting an asynchronous Nexus operation, for example one that starts a Workflow.
55-
If a handler doesn’t respond within a context deadline, a context deadline exceeded error will be tracked in the caller Workflow’s pending Nexus operations, and the Nexus Machinery will retry the Nexus request with an exponential backoff policy.
56-
57-
### Nexus Operation Maximum Duration
58-
59-
Each Nexus Operation has a maximum ScheduleToClose duration of 60 days, which is most applicable to asynchronous Nexus Operations that are completed with an asynchronous callback using a separate Nexus request from the handler back to the caller Namespace.
60-
The 60 day maximum is a limit we will look to increase at some point in the future.
61-
While the caller of a Nexus Operation can configure the ScheduleToClose duration to be shorter than 60 days, the maximum duration can not be extended beyond 60 days and will be capped by the server to 60 days.
28+
Nexus limits are documented in [Temporal Cloud limits](/cloud/limits):
29+
30+
- [Nexus rate limits](/cloud/limits#nexus-rate-limits) - Nexus requests count toward the Namespace RPS limit.
31+
- [Nexus Endpoint limits](/cloud/limits#nexus-endpoints-limits) - 100 Endpoints per Account (default).
32+
- [Per-Workflow Nexus Operation limits](/cloud/limits#per-workflow-nexus-operation-limits) - 30 in-flight Operations per Workflow.
33+
- [Nexus Operation request timeout](/cloud/limits#nexus-operation-request-timeout) - Less than 10 seconds for a handler to process a start or cancel request.
34+
- [Nexus Operation duration limits](/cloud/limits#nexus-operation-duration-limits) - 60-day maximum ScheduleToClose duration.
35+
- [Per-Workflow callback limits](/cloud/limits#per-workflow-callback-limits) - 2000 callbacks per Workflow. Governs how many Nexus callers can attach to a handler Workflow.

docs/cloud/nexus/observability.mdx

Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -25,20 +25,8 @@ should use Nexus in the [evaluation guide](/evaluate/nexus).
2525

2626
:::
2727

28-
Nexus provides metrics and audit log streaming, in addition to integrated
29-
[execution debugging](/nexus/execution-debugging).
28+
Nexus observability in Temporal Cloud:
3029

31-
## Metrics
32-
33-
Nexus provides the following metrics:
34-
35-
- [SDK metrics](/nexus/metrics#sdk-metrics) \- emitted by a Worker.
36-
- [Cloud metrics](/nexus/metrics#cloud-metrics) \- emitted by Temporal Cloud.
37-
38-
## Audit Logging
39-
40-
The following Nexus control plane actions are sent to the [Audit Logging](/cloud/audit-logs) integrations:
41-
42-
- Create Nexus Endpoint: `CreateNexusEndpoint`
43-
- Update Nexus Endpoint: `UpdateNexusEndpoint`
44-
- Delete Nexus Endpoint: `DeleteNexusEndpoint`
30+
- **[Nexus metrics](/nexus/metrics)** - [SDK metrics](/nexus/metrics#sdk-metrics) emitted by Workers and [Cloud metrics](/nexus/metrics#cloud-metrics) emitted by Temporal Cloud.
31+
- **[Execution debugging](/nexus/execution-debugging)** - Bi-directional linking, pending Operations, pending callbacks, and tracing across Namespaces.
32+
- **[Audit logging](/cloud/audit-logs)** - `CreateNexusEndpoint`, `UpdateNexusEndpoint`, and `DeleteNexusEndpoint` actions streamed to your audit log integration.

docs/cloud/nexus/pricing.mdx

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -20,18 +20,12 @@ Learn why you should use Nexus in the [evaluation guide](/evaluate/nexus).
2020

2121
:::
2222

23-
The pricing for [Temporal Nexus](/evaluate/nexus) is:
23+
Nexus pricing:
2424

2525
- **One Action to start or cancel a Nexus Operation** in the caller Namespace.
26-
The underlying Temporal primitives such as Workflows, Activities, Signals created by a Nexus Operation handler (directly or indirectly) result in the normal Actions for those primitives.
27-
This includes retries for underlying Temporal primitives like Activities.
28-
- **No Action results for handling or retrying the Nexus Operation itself**.
29-
However, while the retry of the Nexus Operation incurs no charge, any billable action initiated by the handler (such as an Activity) will be charged if it fails and is subsequently retried.
26+
Underlying primitives (Workflows, Activities, Signals) and their retries created by the handler result in normal Actions.
27+
- **No Action for handling or retrying the Nexus Operation itself**.
28+
However, billable actions initiated by the handler (such as Activities) are charged if they fail and retry.
3029

31-
See [Pricing](/cloud/pricing) for additional details.
30+
See [Pricing](/cloud/pricing) for details.
3231

33-
## Learn more
34-
35-
- [Evaluate](/evaluate/nexus) why you should use Nexus and watch the [Nexus keynote and demo](https://youtu.be/qqc2vsv1mrU?feature=shared&t=2082).
36-
- Learn how Nexus works in the [Nexus deep dive talk](https://www.youtube.com/watch?v=izR9dQ_eIe4) and [Encyclopedia](/nexus).
37-
- [Additional resources](/evaluate/nexus#learn-more) to learn more about Nexus.

docs/cloud/nexus/security.mdx

Lines changed: 5 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -14,57 +14,16 @@ keywords:
1414
- access control
1515
---
1616

17-
import { CaptionedImage } from '@site/src/components';
18-
1917
:::tip SUPPORT, STABILITY, and DEPENDENCY INFO
2018

2119
Temporal Nexus is now [Generally Available](/evaluate/development-production-features/release-stages#general-availability).
2220
Learn why you should use Nexus in the [evaluation guide](/evaluate/nexus).
2321

2422
:::
2523

26-
Temporal Cloud has built-in Nexus security.
27-
It provides secure Nexus connectivity across Namespaces with an mTLS secured Envoy mesh.
28-
Workers authenticate to their Namespace with mTLS client certificates or API keys, as allowed by their Namespace.
29-
Encryption for Nexus payloads is also supported, for example using shared symmetric keys and compatible Data Converters.
30-
31-
## Registry roles and permissions
32-
33-
Nexus Endpoints are Account-scoped resources, similar to a Namespace.
34-
The following roles and permissions are required to manage and view Nexus Endpoints in the Nexus Registry:
35-
36-
- Viewing and browsing the full list of Nexus Endpoints in an Account:
37-
- Read-only role (or higher)
38-
- Managing a Nexus Endpoint (create, update, delete):
39-
- Developer role (or higher) and Namespace Admin permission on the Endpoint’s target Namespace
40-
41-
## Runtime access controls
42-
43-
The Nexus Registry allows setting Endpoint access policy on each Endpoint.
44-
This currently includes an allow list of caller Namespaces that can use the Endpoint at runtime.
45-
Endpoint access control policies are enforced at runtime:
46-
47-
1. Caller's Worker authenticates with their Namespace as they do today with mTLS certificates or API keys.
48-
This establishes the caller's identity and caller Namespace.
49-
2. Caller Workflow executes a Nexus Operation on a Nexus Endpoint.
50-
3. Endpoint access control policy is enforced, checking if the caller Namespace is in the Endpoint allow list.
51-
52-
See [Runtime Access Controls](/nexus/security#runtime-access-controls) and [Configuring Runtime Access Controls](/nexus/registry#configure-runtime-access-controls) for additional details.
53-
54-
## Secure connectivity
55-
56-
Nexus Endpoints are only privately accessible from within a Temporal Cloud and mTLS is used for all Nexus communication, including across cloud cells and regions.
57-
Workers authenticate to their Namespaces through mTLS or an API key as allowed by their Namespace configuration.
58-
59-
<CaptionedImage
60-
src="/img/cloud/nexus/nexus-workers-short.png"
61-
title="Nexus Security"
62-
/>
63-
64-
See [Nexus Secure Connectivity](/nexus/security#secure-connectivity) for additional details.
65-
66-
## Payload encryption
67-
68-
For payload encryption, the DataConverter works the same for a Nexus Operation as it does for other payloads sent between a Worker and Temporal Cloud.
24+
Nexus security in Temporal Cloud:
6925

70-
See [Nexus Payload Encryption & Data Converter](/nexus/security#payload-encryption-data-converter) for additional details.
26+
- **[Runtime access controls](/nexus/security#runtime-access-controls)** - Endpoint allowlists restrict which caller Namespaces can use an Endpoint. See [configuring access controls](/nexus/registry#configure-runtime-access-controls).
27+
- **[Secure connectivity](/nexus/security#secure-connectivity)** - mTLS for all Nexus communication across cells and regions. Endpoints are only accessible within a Temporal Cloud Account.
28+
- **[Payload encryption](/nexus/security#payload-encryption-data-converter)** - Same Data Converter as Workflows and Activities, with three approaches for cross-Namespace encryption.
29+
- **[Registry roles and permissions](/nexus/registry#roles-and-permissions)** - Controls who can view, create, edit, and delete Endpoints.

0 commit comments

Comments
 (0)