temporalio / temporalio/temporal

Confirm aborted update retries schedule responsible for robustness of update to CAN

Open
#7,164 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.