Skip to content

Clarify Schedule overlap and buffering behavior - #5288

Open
harani-mukkala wants to merge 1 commit into
mainfrom
docs/schedule-common-pitfalls
Open

Clarify Schedule overlap and buffering behavior#5288
harani-mukkala wants to merge 1 commit into
mainfrom
docs/schedule-common-pitfalls

Conversation

@harani-mukkala

Copy link
Copy Markdown

What does this PR do?

Clarifies how Schedule Overlap Policies and the Catchup Window affect whether scheduled Actions start.

This update:

  • documents how Workflow Pause interacts with each Overlap Policy
  • explains that Catchup Windows also apply to Actions delayed by overlap handling
  • clarifies that Catchup Windows use the jitter-adjusted Action time and do not restrict manual triggers or Backfills
  • adds concrete timelines for Skip, BufferOne, BufferAll, and CancelOther
  • documents backlog expiry and the approximate default internal buffer limit
  • explains the concurrency risk of AllowAll
  • clarifies that TerminateOther avoids waiting for Workflow cooperation but still has Service-processing latency

Notes to reviewers

The behavioral claims were checked against both the Workflow-backed and CHASM Scheduler implementations in temporalio/temporal.

Commands run:

  • go test -tags test_dep ./service/worker/scheduler ./chasm/lib/scheduler/...
  • go test -tags test_dep ./tests -run '^TestSchedule(CHASM|V1)/(TestAllowAllDescribeContract|TestBufferSizeReportedWhenBuffered|TestBufferOneDeferredFiresAfterCompletion|TestBufferOverrunDropsActions)$' -count=1 -v
  • go test -tags test_dep ./tests -run '^(TestScheduleV1WorkflowPauseInteraction|TestScheduleCHASMWorkflowPauseInteraction)$' -count=1
  • git diff --check

All Scheduler and functional tests passed. The full Workflow Pause interaction matrix covers all six Overlap Policies on both Scheduler implementations, including recovery after unpausing.

The internal buffer limit is described as approximately 1,000 because 1,000 is the current default in both implementations, but it is an implementation detail and can vary by deployment and Scheduler implementation.

@harani-mukkala
harani-mukkala requested a review from a team as a code owner September 9, 2026 19:25
@CLAassistant

Copy link
Copy Markdown

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

@vercel

vercel Bot commented Sep 9, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
temporal-documentation Ready Ready Preview Sep 9, 2026 7:25pm UTC

Request Review

When you're ready to resume the automation, unpause the Workflow Execution and then unpause the Schedule.
If Actions were skipped while the Workflow Execution was Paused, use [Backfill](#backfill) to run them intentionally with the Overlap Policy you want.

#### Catchup Window

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📝 [vale] <Temporal.Headings> reported by reviewdog 🐶
'Catchup Window' should use sentence-style capitalization.

@github-actions

github-actions Bot commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

📖 Docs PR preview links

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 3e75beff08

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Manual triggers and Backfills are not restricted by the Catchup Window.
(But you can always [Backfill](#backfill).)

#### Common pitfalls

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Split the pitfalls section into a focused page

Move this roughly 90-line, six-heading block into a dedicated Schedule overlap page and link to it here. The change increases this page from 16 to 22 headings, well beyond the repository's target of fewer than 15, while some of its missed-Action diagnosis also overlaps docs/troubleshooting/schedule-missed-actions.mdx; splitting it would keep the Schedule overview navigable and give the policy details a focused home.

AGENTS.md reference: AGENTS.md:L246-L252

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yeah, this probably worth it's own page

The effective limit can vary by deployment and Scheduler implementation.
Actions can also expire outside the Catchup Window, so `BufferAll` should not be treated as an unlimited durable queue.

For example, with a five-minute Catchup Window:

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think the example matched the description above. seems like you'd want to show something that does not include a short catchup window.

buffer all is probably the best overlap policy to use when demonstrating the behavior of skip due to catchup window and overlap policy.

Manual triggers and Backfills are not restricted by the Catchup Window.
(But you can always [Backfill](#backfill).)

#### Common pitfalls

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

could to add jitter as well?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants