-
Notifications
You must be signed in to change notification settings - Fork 177
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Message metadata propagation with ack and nack #2244
Conversation
Codecov Report
Additional details and impacted files@@ Coverage Diff @@
## main #2244 +/- ##
=============================================
- Coverage 77.83% 11.50% -66.33%
+ Complexity 3700 459 -3241
=============================================
Files 301 301
Lines 12355 12416 +61
Branches 1580 1582 +2
=============================================
- Hits 9617 1429 -8188
- Misses 2018 10802 +8784
+ Partials 720 185 -535
|
111e1b7
to
eac70ac
Compare
99b1266
to
3c634a3
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A few words of caution:
- We need to make sure that the previous methods (where the ack is a function taking no parameter is still supported)
- We need to make sure we pass the TCK.
This is the reason I didn't push this faster. |
f8a13aa
to
163cdf8
Compare
da7c5b2
to
57eb20c
Compare
The commits might need to be refactored a bit. |
OutgoingInterceptor#onMessage deprecated and replaced by OutgoingInterceptor#beforeMessageSend
Decorator to allow defining an observation collector to observe message acks, nacks and completion duration from inbound and outbound channels
57eb20c
to
86664d4
Compare
Currently, message composition does not propagate message metadata.
This makes message interception (through decorators etc.) practically unfeasible.
With this change
Message
acks and nacks receive an additionalMetadata
parameter.Existing methods for acks/nacks and composition continue to work by delegating to the new ack/nack functions.
The
Message
interface from theapi
package is still compatible with the MP Messaging SpecMessage
interface, verified by theMessageSpecCompatibilityTest
test.Other changes related to message ack/nack composition :
PublisherDecorator#decorate(String, String, boolean)
IncomingInterceptor
OutgoingInterceptor#onMessage
->beforeMessageSend
IncomingInterceptor#afterMessageReceive
MessageObservationCollector
to observe message creation, acks, nacks, and message processing duration.Resolves #334