Affects Version/s: 1.8.0
Fix Version/s: None
Component/s: Router Node
Possible approach to credit replenishment for pre-settled messages.
For unsettled messages the router correlates the eventual settlement of the message with credit flow to the sender. This provides a reasonable method for rate limiting the sender.
However this approach does not apply to pre-settled messages. For these the router simply grants sender credit when the message is forwarded, which tends to over-provisioning credit.
Let's try to apply the behavior of the unsettled case to the settled by forwarding presettled messages as unsettled between routers. It would work something like this:
- presettled msg arrrives at ingress router - no flow granted
- ingress router adds a "presettled" flag to the annotations and forwards the message into the routing network as unsettled.
- at the egress router if the "presettled" flag is in the annotations the message is forwarded to the receiver as presettled.
- the egress router generates an PN_ACCEPTED/Settled event for the message
- which travels back to the ingress router which uses that event to grant flow to the sender.