mirror of
https://github.com/temporalio/temporal.git
synced 2026-08-31 02:51:51 -07:00
## What changed? <!-- Describe what has changed in this PR --> - Add new timer task type for workflow execution timeout & carry over execution timeout timer state across runs in a workflow chain. - This change depends on https://github.com/temporalio/temporal/pull/5531 so that only one timer task will be created on the standby side as well. - New behavior is controlled via a feature flag. ## Why? <!-- Tell your future self why have you made these changes --> - For a workflow chain, we only need one execution timeout timer task for the entire chain. Before this change, each run in the chain will create a run timeout timer. If user set runTimeout == execution timeout (which is the default if only execution timeout is specified!), then the timeout timer for all the runs will fire at the exact same time (because run timeout will be shortened to respect the execution timeout). This can result in a timer burst for a single workflowID. ## How did you test it? <!-- How have you verified this change? Tested locally? Added a unit test? Checked in staging env? --> - Added unit tests - Tested locally with cron workflows. ## Potential risks <!-- Assuming the worst case, what can be broken when deploying this change to production? --> - In worst case, workflow may not timeout properly. ## Documentation <!-- Have you made sure this change doesn't falsify anything currently stated in `docs/`? If significant new behavior is added, have you described that in `docs/`? --> - N/A, no change on behavior. ## Is hotfix candidate? <!-- Is this PR a hotfix candidate or does it require a notification to be sent to the broader community? (Yes/No) --> - No.