temporalio / temporalio/temporal
Worker cache handover
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 23.2k
- Forks
- 1.9k
- Avg merge
- 2d 8h
- Merged PRs (30d)
- 228
Description
Is your feature request related to a problem? Please describe.
When histories are large, a worker restart invalidates all the cached histories. This leads to increased latency for all the workflows that were cached on that worker.
Describe the solution you'd like
When a worker gracefully shuts down (or even crashes), the workflows that are cached on it are recovered on other workers to get cached before any tasks are generated for them.
Additional context
This is how a user requested it:
Moving workflows that have a high history size from one worker to another when you have to kill the worker (to update for example) can be painful. It would be great if there was a way to mark workflows as "require preemptive cache alocation" or something that ensures that the cache is coordinated when killing the worker (or some similar strategy to make killing such a worker less painful)
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 by identifying the worker shutdown, workflow cache ownership, and cache recovery entry points in the repository. Define how cached workflows move after graceful shutdown or a crash, and how recovery must complete before new tasks are generated; done should include tests covering worker handover and cache restoration.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- distributed-systems
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100