temporalio / temporalio/temporal
Confirm aborted update retries schedule responsible for robustness of update to CAN
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 23.2k
- Forks
- 1.9k
- Avg merge
- 2d 8h
- Merged PRs (30d)
- 228
Description
temporalio/features:features/continue_as_new/updates_do_not_block_continue_as_new is a feature test that confirms that, when an update is admitted while a WFT is in-flight, and that WFT CANs, that the update lands on the next run.
This behavior relies on the update being aborted, and retried (our intention is that these retries are done by gRPC interceptors and/or history client in the Frontend service). However, currently, the error responses are being returned to the SDK caller; the desired behavior occurs because the SDK client retries the ResourceExhaustedFailure. So:
- We need to make the server retry this internally (at least, that was out original intention)
- I think that we want to confirm that retries will be spread out in time such that races with the CAN handling are very unlikely.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the features/continue_as_new/updates_do_not_block_continue_as_new feature test to understand the expected update behavior when a WFT continues as new. Inspect the Frontend service's gRPC interceptors and history client, where the issue says retries should occur. Done means the server retries aborted updates internally and spreads retries enough to avoid races with continue-as-new handling.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go, grpc
- Domain
- backend-api-design, distributed-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100