Wire ResequencerSaga ShouldProceed() into saga code generation#2298
Merged
jeremydmiller merged 3 commits intomainfrom Mar 12, 2026
Merged
Wire ResequencerSaga ShouldProceed() into saga code generation#2298jeremydmiller merged 3 commits intomainfrom
jeremydmiller merged 3 commits intomainfrom
Conversation
Add ShouldProceedGuardFrame that wraps handler calls with a ShouldProceed() guard for ResequencerSaga<T> types. The guard ensures messages are processed in order while always persisting the saga state (Pending list and LastSequence may change even when the handler is skipped). Also fix ShouldProceed to allow re-published messages (Order <= LastSequence) through the guard instead of re-queuing them. Includes in-memory tests (CoreTests), Marten end-to-end tests, and documentation with link to the EIP Resequencer pattern. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…aging Detect SequencedMessage types in MaybeInferGrouping and use Order as the group id for partitioned sequential messaging. Messages with null Order get a random group id so they distribute independently. Update partitioning and saga docs to recommend using partitioned sequential messaging with ResequencerSaga for concurrency management. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This was referenced Mar 13, 2026
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.
Summary
ShouldProceedGuardFramethat wraps saga handler calls with aShouldProceed()guard forResequencerSaga<T>types, implementing the Resequencer EIP patternSagaChainto detectResequencerSaga<T>and thread the message variable through toDetermineSagaExistsStepsfor guard frame generationShouldProceedto allow re-published messages (Order <= LastSequence) through the guard instead of re-queuing themSequencedMessagedetection to inferred message group detection — messages implementingSequencedMessageautomatically useOrderas the group id for partitioned sequential messagingSequencedMessageas an inferred grouping sourceTest plan
🤖 Generated with Claude Code