temporalio / temporalio/temporal
Workflow Pause / Unpause
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 23.2k
- Forks
- 1.9k
- Avg merge
- 2d 8h
- Merged PRs (30d)
- 228
Description
There are many uses cases where the ability to pause a workflow would be very much appreciated.
Pause a workflow would mean no more workflow task would be scheduled for that workflow. The unpause would mean create new workflow task if one is needed but not present because it was paused. The tricky part is to replicate paused state to passive side.
We can have a default pause policy that apply to workflows that experience continued workflow task failure, for example due to bug in workflow code.
We could also enable pausing on activity failure as part of retry policy.
Paused workflow should be visible through visibility API, and some kind of batch operation to support unpause them on demand.
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
No files or tests are named. Start by reviewing the discussion and the existing workflow task scheduling, passive-side replication, visibility API, and retry-policy behavior; define pause and unpause semantics before identifying the affected entry points and tests. Done means paused workflows stop scheduling tasks, unpause can recreate needed tasks, state is replicated, and paused workflows are visible and batch-unpausable.
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
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100