-
Notifications
You must be signed in to change notification settings - Fork 303
Nexus docs update #4262
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Nexus docs update #4262
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -20,45 +20,15 @@ keywords: | |
| - service level agreement | ||
| --- | ||
|
|
||
| import { CaptionedImage } from '@site/src/components'; | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Do we want to keep this to keep the top right navigation hint? |
||
|
|
||
| :::tip SUPPORT, STABILITY, and DEPENDENCY INFO | ||
|
|
||
| Temporal Nexus is now [Generally Available](/evaluate/development-production-features/release-stages#general-availability). | ||
| Learn why you should use Nexus in the [evaluation guide](/evaluate/nexus). | ||
|
|
||
| ::: | ||
|
|
||
| Nexus requests (commands, polling) have the same latency SLOs and error rate SLAs as other Worker requests in both the caller and handler Namespaces. | ||
|
|
||
| ## Latency metrics | ||
|
|
||
| Nexus supports various [latency metrics](/nexus/metrics). | ||
|
|
||
| ## Worker to Temporal Cloud interactions | ||
|
|
||
| Nexus interactions between a Worker and Temporal Cloud use the Worker's Namespace gRPC endpoint. | ||
| 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. | ||
|
|
||
| <CaptionedImage | ||
| src="/img/cloud/nexus/nexus-workers-short.png" | ||
| title="Interaction between Workers and Temporal Cloud" | ||
| /> | ||
|
|
||
| This applies to the following Nexus-related interactions between a Worker and Temporal Cloud: | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Are we sure we want to get rid of this? I agree that less is more and cleaner is better. But is it important to explain what availability means for each of these Nexus concepts? I don't feel strongly, but wanted to ask in case this was an accidental removal.
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. we could link to nexus/operations#system-interactions for details |
||
|
|
||
| - Caller Namespace | ||
| - RespondWorkflowTaskCompleted \- schedule a Nexus Operation. | ||
| - Handler Namespace | ||
| - PollNexusTaskQueue \- get a [Nexus Task](/tasks#nexus-task) to process, for example to start a Nexus Operation. | ||
| - RespondNexusTaskCompleted \- report the Nexus Task was successful. | ||
| - RespondNexusTaskFailed \- report the Nexus Task failed. | ||
|
|
||
| ## Nexus connectivity across Namespaces | ||
|
|
||
| Nexus connectivity in Temporal Cloud is provided by a global mTLS secured Envoy mesh. | ||
| 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. | ||
| Nexus latency and availability in Temporal Cloud: | ||
|
|
||
| Communication between Namespaces in the same region will have lower latency. | ||
| Communication across different regions will have higher latency. | ||
| Consult the cross-region latency tables for your cloud provider(s) to estimate the latency for Nexus communication across Namespaces in Temporal Cloud. | ||
| - **SLOs and SLAs** - Nexus requests have the same [latency SLOs](/cloud/service-availability#latency) and [availability SLAs](/cloud/sla) as other Worker requests in both caller and handler Namespaces. | ||
| - **[Nexus metrics](/nexus/metrics)** - SDK and Cloud latency metrics for monitoring Nexus performance. | ||
| - **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). | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -20,18 +20,12 @@ Learn why you should use Nexus in the [evaluation guide](/evaluate/nexus). | |
|
|
||
| ::: | ||
|
|
||
| The pricing for [Temporal Nexus](/evaluate/nexus) is: | ||
| Nexus pricing: | ||
|
|
||
| - **One Action to start or cancel a Nexus Operation** in the caller Namespace. | ||
| 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. | ||
| This includes retries for underlying Temporal primitives like Activities. | ||
| - **No Action results for handling or retrying the Nexus Operation itself**. | ||
| 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. | ||
| Underlying primitives (Workflows, Activities, Signals) created by the handler result in normal Actions, including retries. | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Should we remove the ", including retries." part of this line. The next line talks about how retries are billed.
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. this ", including retries" is for the Underlying primitives (like Activity retries), not the Nexus Operation itself, so we need both to be clear/correct |
||
| - **No Action for handling or retrying the Nexus Operation itself**. | ||
| However, billable actions initiated by the handler (such as Activities) are charged if they fail and retry. | ||
|
|
||
| See [Pricing](/cloud/pricing) for additional details. | ||
| See [Pricing](/cloud/pricing) for details. | ||
|
|
||
| ## Learn more | ||
|
|
||
| - [Evaluate](/evaluate/nexus) why you should use Nexus and watch the [Nexus keynote and demo](https://youtu.be/qqc2vsv1mrU?feature=shared&t=2082). | ||
| - Learn how Nexus works in the [Nexus deep dive talk](https://www.youtube.com/watch?v=izR9dQ_eIe4) and [Encyclopedia](/nexus). | ||
| - [Additional resources](/evaluate/nexus#learn-more) to learn more about Nexus. | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -14,57 +14,16 @@ keywords: | |
| - access control | ||
| --- | ||
|
|
||
| import { CaptionedImage } from '@site/src/components'; | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Do we want to remove this? I think it removes the top right heading summary from the page...
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. this is the component that renders the captioned image below (which we're removing) so think we're good to remove this. |
||
|
|
||
| :::tip SUPPORT, STABILITY, and DEPENDENCY INFO | ||
|
|
||
| Temporal Nexus is now [Generally Available](/evaluate/development-production-features/release-stages#general-availability). | ||
| Learn why you should use Nexus in the [evaluation guide](/evaluate/nexus). | ||
|
|
||
| ::: | ||
|
|
||
| Temporal Cloud has built-in Nexus security. | ||
| It provides secure Nexus connectivity across Namespaces with an mTLS secured Envoy mesh. | ||
| Workers authenticate to their Namespace with mTLS client certificates or API keys, as allowed by their Namespace. | ||
| Encryption for Nexus payloads is also supported, for example using shared symmetric keys and compatible Data Converters. | ||
|
|
||
| ## Registry roles and permissions | ||
|
|
||
| Nexus Endpoints are Account-scoped resources, similar to a Namespace. | ||
| The following roles and permissions are required to manage and view Nexus Endpoints in the Nexus Registry: | ||
|
|
||
| - Viewing and browsing the full list of Nexus Endpoints in an Account: | ||
| - Read-only role (or higher) | ||
| - Managing a Nexus Endpoint (create, update, delete): | ||
| - Developer role (or higher) and Namespace Admin permission on the Endpoint’s target Namespace | ||
|
|
||
| ## Runtime access controls | ||
|
|
||
| The Nexus Registry allows setting Endpoint access policy on each Endpoint. | ||
| This currently includes an allow list of caller Namespaces that can use the Endpoint at runtime. | ||
| Endpoint access control policies are enforced at runtime: | ||
|
|
||
| 1. Caller's Worker authenticates with their Namespace as they do today with mTLS certificates or API keys. | ||
| This establishes the caller's identity and caller Namespace. | ||
| 2. Caller Workflow executes a Nexus Operation on a Nexus Endpoint. | ||
| 3. Endpoint access control policy is enforced, checking if the caller Namespace is in the Endpoint allow list. | ||
|
|
||
| See [Runtime Access Controls](/nexus/security#runtime-access-controls) and [Configuring Runtime Access Controls](/nexus/registry#configure-runtime-access-controls) for additional details. | ||
|
|
||
| ## Secure connectivity | ||
|
|
||
| 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. | ||
| Workers authenticate to their Namespaces through mTLS or an API key as allowed by their Namespace configuration. | ||
|
|
||
| <CaptionedImage | ||
| src="/img/cloud/nexus/nexus-workers-short.png" | ||
| title="Nexus Security" | ||
| /> | ||
|
|
||
| See [Nexus Secure Connectivity](/nexus/security#secure-connectivity) for additional details. | ||
|
|
||
| ## Payload encryption | ||
|
|
||
| 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. | ||
| Nexus security in Temporal Cloud: | ||
|
|
||
| See [Nexus Payload Encryption & Data Converter](/nexus/security#payload-encryption-data-converter) for additional details. | ||
| - **[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). | ||
| - **[Secure connectivity](/nexus/security#secure-connectivity)** - mTLS for all Nexus communication across cells and regions. Endpoints are only accessible within a Temporal Cloud Account. | ||
| - **[Payload encryption](/nexus/security#payload-encryption-data-converter)** - Same Data Converter as Workflows and Activities, with three approaches for cross-Namespace encryption. | ||
| - **[Registry roles and permissions](/nexus/registry#roles-and-permissions)** - Controls who can view, create, edit, and delete Endpoints. | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is great!! I wonder if this image is a bit overwhelming for this page. We could workshop other overview diagrams or replace it with a simpler one. Not a blocking comment though.