Include transient and speculative WFT events in GetWorkflowExecutionHistoryResponse#9325
Draft
Include transient and speculative WFT events in GetWorkflowExecutionHistoryResponse#9325
Conversation
…-premature-end-stream
…-premature-end-stream
…-premature-end-stream
…-premature-end-stream
…-premature-end-stream
…-premature-end-stream
…-premature-end-stream
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.
What changed?
Re-does #9138 which was incidentally merged.
Include transient and speculative WFT events in
GetWorkflowExecutionHistoryReponseresponse, unless UI or CLI made request.transient_or_speculative_eventsback toGetMutableStateResponsetransient_workflow_taskinHisotryCOntinuationtokenRe-implements #7732
Why?
Fix "premature end of stream" errors when workers request history after cache eviction w/ transient/speculative workflow tasks present. This adds transient & speculative WFT events in
GetWorkflowExecutionHistory(already inPollWorkflowTask). Worker cache eviction w/ speculative workflow tasks causes the expected and actual event counts to be different. #7732 passed transient events through continuation tokens, which could become stale during pagination. This PR implements mutable state querying at both start and end of pagination and compares transient event IDs to detect if WFT state changed during pagination and return a retryable error.How did you test it?
Potential risks
Same risks from #7732