Implement message type binding for receive endpoints and enhance error handling#9870
Draft
PascalSenn wants to merge 2 commits into
Draft
Implement message type binding for receive endpoints and enhance error handling#9870PascalSenn wants to merge 2 commits into
PascalSenn wants to merge 2 commits into
Conversation
…r handling - Added `Receives<TMessage>()` and `Receives(Type messageType)` methods to endpoint descriptors for binding handlers by message type. - Updated `MessagingTransport` to utilize the new binding methods and throw exceptions when no handler is registered for a message type. - Introduced tests to validate the new binding behavior and error handling. - Updated documentation to reflect the new binding approach for message types.
Address devil's-advocate review of Receives<T> binding: - BindRouteToEndpoint now copies the source route's Condition onto the fan-out clone, so custom filters and saga typed-reply guards are no longer widened to a default condition. - Add an idempotency guard so declaring the same message type or consumer across three or more endpoints does not over-clone routes. Add regression tests: condition preservation on fan-out, no duplicate routes across three endpoints, and behavioral delivery to both queues. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
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.
Receives<TMessage>()andReceives(Type messageType)methods to endpoint descriptors for binding handlers by message type.MessagingTransportto utilize the new binding methods and throw exceptions when no handler is registered for a message type.