On 05/11/2019 11:31 am, Robbie Gemmell wrote:
I think always-accepting would be fairly consistent multicast / topic
like behaviour that neednt imply any consumer delivery guarantee, the
same way it doesnt for brokered cases, with it only meaning that a
router saw the message, particularly if covered by the documentation.

I think the brokered case is different as it involves a store-and-forward semantic. The producer always cares only that the broker it sent it to got it. The forwarding of the message is always decoupled from that and so the state of consumers is irrelevant to the acknowledgement for both queues and topics.

The router provides an end-to-end acknowledgement rather than store-and-forward. Though the limitations of the outcomes defined in the AMQP specification prevent the fullest expression of that, Ken's work allows what is in my view a more internally consistent approach.

Reject always means that a receiver rejected it. Accept always means that a receiver accepted it, and it was not rejected. Release always means that either the message could not be routed to any receiver or that any receiver to which it was routed explicitly released it. Modified means it was routed to at least one receiver which either explicitly issued the modified outcome or was disconnected before it returned any explicit outcome.

(Maybe in the future we could even have a custom outcome, support for which could be advertised in the connection or link capabilities, that allowed an explicit aggregation of the outcomes from each distinct receiver to which the message was routed to be included)


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to