Skip to content
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

Temporal Nexus: Deploy to Production - Temporal Cloud & Nexus #3078

Merged
merged 34 commits into from
Oct 2, 2024

Conversation

jsundai
Copy link
Contributor

@jsundai jsundai commented Sep 11, 2024

What does this PR do?

Preview

Notes to reviewers

Anchors and links to be added later.

@jsundai jsundai marked this pull request as ready for review September 12, 2024 19:26
@jsundai jsundai requested a review from a team as a code owner September 12, 2024 19:26
Copy link
Contributor

@prasek prasek left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

dropped some suggestions, thanks!

docs/production-deployment/cloud/nexus/getting-started.mdx Outdated Show resolved Hide resolved
docs/production-deployment/cloud/nexus/getting-started.mdx Outdated Show resolved Hide resolved
docs/production-deployment/cloud/nexus/index.mdx Outdated Show resolved Hide resolved
docs/production-deployment/cloud/nexus/operations.mdx Outdated Show resolved Hide resolved
docs/production-deployment/cloud/nexus/using-nexus.mdx Outdated Show resolved Hide resolved
docs/production-deployment/cloud/nexus/using-nexus.mdx Outdated Show resolved Hide resolved
### At-least-once Execution Semantics and Idempotency

Nexus Operations, like Activities, have at-least-once execution semantics.
The caller's Nexus Machinery will keep trying to start the Operation over and over, so the Nexus `Operation` handler should be idempotent just like Activities should be idempotent as a general rule. It's not required in all cases, but highly recommended in general.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The caller's Nexus Machinery will keep trying to start the Operation over and over, so the Nexus `Operation` handler should be idempotent just like Activities should be idempotent as a general rule. It's not required in all cases, but highly recommended in general.
The caller's Nexus Machinery will keep trying to start the Operation over and over until the ScheduleToClose timeout is exceeded which has a [maximum duration](/operations#limits??). This means the Nexus `Operation` handler should be idempotent just like Activities should be idempotent as a general rule. It's not required in all cases, but highly recommended in general.

docs/production-deployment/cloud/nexus/using-nexus.mdx Outdated Show resolved Hide resolved
docs/production-deployment/cloud/nexus/using-nexus.mdx Outdated Show resolved Hide resolved
Calls across existing Namespaces can be enabled by creating a Nexus Endpoint in the Nexus API Registry, creating a Nexus Service in a Worker in the handler Namespace, and then using the Nexus Service from a caller Workflow in a different Namespace.

Monolithic Namespaces can be decomposed into multiple Namespaces, by hiding service implementations behind a Nexus Endpoint in the monolithic Namespace, pointing all consumers at the new Nexus Endpoint, and then changing the Endpoint’s target Namespace to a different Namespace.
Multiple Nexus Endpoints can target a single monolithic Namespace.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[Nit] "can target a single Namespace" --> I think monolithic is not needed for this line

@jsundai jsundai merged commit a141e7e into main Oct 2, 2024
3 checks passed
@jsundai jsundai deleted the temporal-cloud-deploy-production branch October 2, 2024 12:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants