Include transient and speculative WFT events in GetWorkflowExecutionHistoryResponse #9138
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?
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 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