-
Notifications
You must be signed in to change notification settings - Fork 229
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
Add docs for Nexus circuit breaker #3220
base: main
Are you sure you want to change the base?
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 | ||||
---|---|---|---|---|---|---|
|
@@ -146,6 +146,16 @@ As mentioned above, a synchronous Nexus Operation handler has less than 10 secon | |||||
Once the caller Workflow schedules an Operation with the caller’s Temporal cluster, the caller’s Nexus Machinery keeps trying to start the Operation, with automatic retries and exponential backoff. | ||||||
If a Nexus Operation returns a [retryable error](https://github.com/temporalio/temporal/blob/13d6cd8cf7a4ba0c4660cf98f672bbd645dca3e7/components/nexusoperations/executors.go#L659) when attempting to start, the Operation it will be retried up to the [default Retry Policy’s](https://github.com/temporalio/temporal/blob/de7c8879e103be666a7b067cc1b247f0ac63c25c/components/nexusoperations/config.go#L111) max attempts and expiration interval. | ||||||
|
||||||
### Circuit Breaker {#circuit-breaker} | ||||||
|
||||||
The circuit breaker kicks in when requests fail with a [retryable error](https://github.com/temporalio/temporal/blob/13d6cd8cf7a4ba0c4660cf98f672bbd645dca3e7/components/nexusoperations/executors.go#L659) | ||||||
consecutively as it might indicate that the destination (eg: Nexus service to start operation, or | ||||||
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. The endpoint would be down, not the service. |
||||||
the caller for callback request) is down or unable to process the request. The default behavior of | ||||||
the circuit breaker is to open after 5 consecutive failed requests. Once in open state, Nexus taskk | ||||||
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. Not sure users will understand what nexus tasks are in this context and this applies to callback "tasks" as well. This is all internal details, you should use "the Nexus machinery" instead. |
||||||
will fail early and requests won't be sent to destination. After a minute in open state, it will | ||||||
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.
Suggested change
|
||||||
change to half-open state, which will allow only 1 request to be made. If the request is successful, | ||||||
then the circuit breaker changes its state to closed, and allows all requests to pass through. | ||||||
|
||||||
Comment on lines
+149
to
+158
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 only change I made, all other changes was |
||||||
### Execution Semantics {#execution-semantics} | ||||||
|
||||||
#### At-least-once Execution Semantics and idempotency | ||||||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -160,9 +160,9 @@ We offer two Support tiers: Basic and Premium. | |
Support costs are outlined in the table below. | ||
A complete description of Support plans and response times can be found in our [Support](/cloud/support#support) documentation. | ||
|
||
| | Basic | Premium | | ||
| ------------------- | ------------------------------------------- | --------------------------------------------- | | ||
| Pricing (per month) | Greater of $200 or 10% of monthly usage | Contact [Sales](mailto:[email protected]) | | ||
| | Basic | Premium | | ||
| ------------------- | ------------------------------------------- | ----------------------------------------- | | ||
| Pricing (per month) | Greater of $200 or 10% of monthly usage | Contact [Sales](mailto:[email protected]) | | ||
|
||
### Pricing options {#pricing-options} | ||
|
||
|
@@ -456,4 +456,3 @@ You will be assigned a new Temporal account and be treated as a new customer. | |
**What happens to my credits if I cancel my account?** | ||
|
||
Prepaid but unused credits purchased after June 17, 2024 will be refunded if the account is canceled. | ||
|
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 would explicitly call out request timeouts and how that may relate to when a worker is down.