-
Notifications
You must be signed in to change notification settings - Fork 289
Fixing errors about Namespace connectivity and best practices #4127
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?
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
📖 Docs PR preview links
|
| - A Namespace is provisioned with [endpoints](constraints-and-limitations) for executing your Workflows. Accessing a Namespace from a Worker or Temporal Client | ||
| requires [API keys](/cloud/api-keys) or [mTLS](/cloud/certificates) authentication. | ||
| - [Workflow Id](/workflow-execution/workflowid-runid#workflow-id)uniqueness is per Namespace. | ||
| - Every [Workflow Id](/workflow-execution/workflowid-runid#workflow-id) in a Namespace must be unique. Workflow Ids in different Namespaces may be the same. |
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.
Should probably point out that only open workflow requires this uniqueness constraints. You can have multiple closed workflows with the same ID.
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.
oh good to know!
bechols
left a comment
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.
Lots of small comments/suggestions, but this is a big improvement.
| the system. A Namespace's default limit is set at 400 APS and automatically adjusts based on recent usage (over the | ||
| prior 7 days). Your APS limit will never fall below this default value. | ||
| the system. | ||
| - Each Namespace's default limit is set at 400 APS and automatically adjusts based on recent usage (over the |
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.
I think default APS limit is 500 now - updated as we're rolling out capacity units. Worth double checking with TLo but good to fix since we're touching the line.
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.
will do!
| permitted at the Namespace level. Isolating applications or environments (development, test, staging, production) | ||
| should take this into consideration. | ||
| - A Namespace is provisioned with an endpoint for executing your Workflows. Accessing a Namespace from a Temporal Client | ||
| - A Namespace is provisioned with [endpoints](constraints-and-limitations) for executing your Workflows. Accessing a Namespace from a Worker or Temporal Client |
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.
| - A Namespace is provisioned with [endpoints](constraints-and-limitations) for executing your Workflows. Accessing a Namespace from a Worker or Temporal Client | |
| - A Namespace exposes [endpoints](#access-namespaces) for executing your Workflows. Accessing a Namespace from a Worker or Temporal Client |
| - A Namespace is provisioned with [endpoints](constraints-and-limitations) for executing your Workflows. Accessing a Namespace from a Worker or Temporal Client | ||
| requires [API keys](/cloud/api-keys) or [mTLS](/cloud/certificates) authentication. | ||
| - [Workflow Id](/workflow-execution/workflowid-runid#workflow-id)uniqueness is per Namespace. | ||
| - Every [Workflow Id](/workflow-execution/workflowid-runid#workflow-id) in a Namespace must be unique. Workflow Ids in different Namespaces may be the same. |
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.
Do we use Id (rather than ID) everywhere?
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.
ah no, we use ID
| - Namespaces should be used to reduce the "blast radius" for mission-critical applications. | ||
| - Workflows that need to communicate with each other should (for now) be in the same Namespace. | ||
| - If you need to share Namespaces across team or domain boundaries, be sure to ensure the uniqueness of Workflow Ids. | ||
| - Environments such as production and development usually have requirements for isolation. We recommend that each |
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.
Link to (and/or replace in favor of) https://docs.temporal.io/best-practices/managing-namespace#organizational-patterns ?
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.
oh yes definitely, this entire section should be taken out and just linked to that ^ much better one
| - This endpoint is unique to each Namespace. It will always connect to the Namespace, no matter which region(s) the Namespace is using. (Recommended for Namespaces with High Availability) | ||
| - A Temporal Client that uses a Namespace endpoint doesn't have to be aware of which region the Namespace is in. | ||
| - Restrictions: | ||
| - If [High Availability](/cloud/high-availability) is not enabled, then accessing a Namespace via API key + Namespace endpoint is not supported. To use the Namespace endpoint with API keys, a Namespace must have [High Availability](/cloud/high-availability) enabled. |
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.
But this is changing soon, right?
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.
yes
| ### Configuring a Temporal Client with API keys or mTLS | ||
|
|
||
| - To use API keys to connect with the [Temporal CLI](/cli), [Client SDK](/develop), [tcld](/cloud/tcld), | ||
| To use API keys to connect with the [Temporal CLI](/cli), [Client SDK](/develop), [tcld](/cloud/tcld), |
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.
Minor: risk of drift vs the list at https://docs.temporal.io/cloud/api-keys#api-key-supported-tooling
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.
will link
| - Set up your allow list for outgoing network requests from your Clients and Workers with the IP address ranges of the | ||
| For enhanced protection: | ||
| - Set up [private connectivity](/cloud/connectivity#private-network-connectivity-for-namespaces) to the Namespace. | ||
| - In your own networking architecture, set up an allow list for outgoing network requests from your Clients and Workers with the IP address ranges of the |
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.
Needs to cover multiple regions if it's a HA namespace
| - Temporal Cloud has only one regional endpoint for each cloud region. The same regional endpoint can access any Namespace that is active in that region (or that has a [replica](/cloud/high-availability) in that region). | ||
| - A Temporal Client can use a regional endpoint to ensure connection to a Namespace always happens within that region. | ||
| - Restrictions: | ||
| - When using mTLS to authenticate, the Temporal Client must set the `server_name` property in its request to the value of the Namespace endpoint. |
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.
I'm not able to easily ctrl+f the linked docs for occurrences of server_name. Should we instead say that the "Temporal Client must override the Server Name Indication (SNI) in its TLS configuration to the value of the Namespace endpoint", perhaps linking to an example, and then refer to SNI later in this doc?
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.
I will attempt to rewrite
|
Left one comment inline otherwise LGTM |
Co-authored-by: Ben Echols <benjamin.echols@temporal.io>
|
|
||
| - **Workflow ID uniqueness**: Temporal guarantees a unique Workflow Id within a Namespace. | ||
| Workflow Executions may have the same Workflow Id if they are in different Namespaces. | ||
| - **Workflow ID uniqueness**: Temporal guarantees that each running Workflow Exeecution within a Namespace has a unique Workflow ID. |
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.
Typo: "Exeecution" should be "Execution"
| - **Workflow ID uniqueness**: Temporal guarantees that each running Workflow Exeecution within a Namespace has a unique Workflow ID. | |
| - **Workflow ID uniqueness**: Temporal guarantees that each running Workflow Execution within a Namespace has a unique Workflow ID. |
| There are charges associated with Replication and enabling High Availability features. For pricing details, visit | ||
| Temporal Cloud's [Pricing](/cloud/pricing) page. | ||
|
|
||
| If the Namespace's APS limit has been raised above the [default limit](https://docs.temporal.io/cloud/namespaces#constraints-and-limitations), then it will require a support ticket to to add a replica. Support will ensure that Temporal Cloud has capacity in the replica's region to handle the additional APS. Please |
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.
Two issues on this line:
- Duplicate word: "to to add" should be "to add"
- Not ideal link: suggest using
/cloud/capacity-modes#namespace-capacityinstead
| If the Namespace's APS limit has been raised above the [default limit](https://docs.temporal.io/cloud/namespaces#constraints-and-limitations), then it will require a support ticket to to add a replica. Support will ensure that Temporal Cloud has capacity in the replica's region to handle the additional APS. Please | |
| If the Namespace's APS limit has been raised above the [default limit](/cloud/capacity-modes#namespace-capacity), then it will require a support ticket to add a replica. Support will ensure that Temporal Cloud has capacity in the replica's region to handle the additional APS. Please |
| - Temporal Cloud has only one regional endpoint for each cloud region. The same regional endpoint can access any Namespace that is active in that region (or that has a [replica](/cloud/high-availability) in that region). | ||
| - A Temporal Client can use a regional endpoint to ensure connection to a Namespace always happens within that region. | ||
| - Restrictions: | ||
| - When using mTLS to authenticate, the Temporal Client override the Server Name Indication (SNI) in the TLS configuration with the value of the Namespace endpoint. |
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.
Grammar: "the Temporal Client override" should be "the Temporal Client must override"
| - When using mTLS to authenticate, the Temporal Client override the Server Name Indication (SNI) in the TLS configuration with the value of the Namespace endpoint. | |
| - When using mTLS to authenticate, the Temporal Client must override the Server Name Indication (SNI) in the TLS configuration with the value of the Namespace endpoint. |
| - Restrictions: | ||
| - When using mTLS to authenticate, the Temporal Client override the Server Name Indication (SNI) in the TLS configuration with the value of the Namespace endpoint. | ||
| In the Temporal SDKs, this can be done using the "TLS Server Name" property in requests to Temporal Cloud. | ||
| For example, in the [Temporal CLI](/cloud/certificates#configure-temporal-cli, this can be done by using `TEMPORAL_TLS_SERVER_NAME=<namespace endpoint>` or `--tls-server-name <namespace endpoint>`. |
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.
Broken markdown link: Missing closing parenthesis. Should be [Temporal CLI](/cloud/certificates#configure-temporal-cli) (note the closing ) before the comma).
| For example, in the [Temporal CLI](/cloud/certificates#configure-temporal-cli, this can be done by using `TEMPORAL_TLS_SERVER_NAME=<namespace endpoint>` or `--tls-server-name <namespace endpoint>`. | |
| For example, in the [Temporal CLI](/cloud/certificates#configure-temporal-cli), this can be done by using `TEMPORAL_TLS_SERVER_NAME=<namespace endpoint>` or `--tls-server-name <namespace endpoint>`. |
What does this PR do?
Fixes some errors on the Namespace "General Guidance" section and on the "Connecting to your Namespace" section.
Notes to reviewers