Repository navigation
Conversation
Native and PHP both delivered full history on every workflow task, so a 1,001-event workflow moved about 242 MB (#1017 part 2, sdk-php#233). A worker that lists sticky_history_suffix reports, with each sticky completion, the last history sequence it replayed and cached (sticky_cache.history_last_sequence). When that worker next claims the run with sticky_hit_expected, it receives only the events after that sequence, with history_after_sequence and history_last_sequence on the answer. Every other claim to such a worker carries history_after_sequence 0 and full history. Workers without the capability see no change and may not report a boundary. The boundary is kept on the completed task's payload; no schema change. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Member
Author
|
End-to-end check by sdk-php (2026-11-11) against a local build of this branch, fresh SQLite Server per run, 25 sequential timers (26 workflow tasks): with sdk-php#384, 25/26 sticky hits, 0 forced cold replays, 0 refetches, 41 KB of history; with the main SDK, 0 hits, 25 forced, 573 KB. About 14× less transfer; both runs completed. Details on #1017 and sdk-php#384. |
rmcdaniel
marked this pull request as ready for review
November 11, 2026 18:14
rmcdaniel
changed the base branch from
feat/server-1017-sticky-parity
to
main
November 11, 2026 18:53
rmcdaniel
enabled auto-merge
November 11, 2026 18:53
|
rmcdaniel
added this pull request to the merge queue
Nov 11, 2026
Any commits made after this event will not be merged.
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Part 2 of #1017, stacked on #1140 (retarget to main after it merges). The SDK half is durable-workflow/sdk-php#384.
Change (wire shape on #1017, incl. the amendment)
sticky_history_suffix(plus supportedsticky_execution). Server advertisesserver_capabilities.sticky_history_suffix = {supported: true, version: 1}.sticky_cache.history_last_sequence(last sequence it replayed and cached). It's stored on the completed task's payload (no schema change). A worker without the capability sending it gets 422sticky_history_suffix_not_supported.sticky_hit_expected, history starts after the reported sequence; the answer carrieshistory_after_sequenceandhistory_last_sequence. Any other claim by an opted-in worker carrieshistory_after_sequence: 0and full history. Paging is unchanged. Workers without the capability see no new fields.Checks
history_last_sequence); a non-suffix worker gets no new fields and is refused if it reports a boundary.cargo test --lib481 passed; full--test execution767 passed.🤖 Generated with Claude Code