kgiusti commented on a change in pull request #556: DISPATCH-1402: Doc
unsettled multicast
URL: https://github.com/apache/qpid-dispatch/pull/556#discussion_r318754989
##########
File path: docs/books/user-guide/routing.adoc
##########
@@ -266,59 +266,50 @@ In this scenario, all messages are sent to all receivers:
.Multicast Message Routing
image::multicast-routing.png[Multicast Message Routing, align="center"]
-=== Message Settlement
+=== Message Settlement and Reliability
-Message settlement is negotiated between the producer and the router when the
producer establishes a link to the router. Depending on the settlement pattern,
messages might be delivered with any of the following degrees of reliability:
+{RouterName} can deliver messages with the following degrees of reliability:
* At most once
* At least once
* Exactly once
-{RouterName} treats all messages as either _pre-settled_ or _unsettled_, and
it is responsible for propagating the settlement of each message it routes.
+The level of reliability is negotiated between the producer and the router
when the producer establishes a link to the router. To achieve the negotiated
level of reliability, {RouterName} treats all messages as either _pre-settled_
or _unsettled_.
-Pre-settled:: Sometimes called _fire and forget_, the router settles the
incoming and outgoing deliveries and propagates the settlement to the message's
destination. However, it does not guarantee delivery.
+Pre-settled::
+Sometimes called _fire and forget_, the router settles the incoming and
outgoing deliveries and propagates the settlement to the message's destination.
However, it does not guarantee delivery.
-Unsettled:: The router propagates the settlement between the sender and
receiver, and guarantees one of the following outcomes:
+Unsettled::
+{RouterName} propagates the settlement between the producer and consumer. For
an anycast address, the router associates the incoming delivery with the
resulting outgoing delivery. Based on this association, the router propagates
changes in delivery state from the consumer to the producer.
+
-* The message is delivered and settled, with the consumer's disposition
indicated.
-* The delivery is settled with a disposition of `RELEASED`.
+For a multicast address, the router associates the incoming delivery with all
outbound deliveries. When each outbound delivery is settled by its consumer,
the router sets a final delivery state for the original inbound delivery and
passes it to the producer.
Review comment:
How about modifying the first part of the second sentence to read:
"The router waits for each consumer to set their delivery's final state.
Once all outgoing deliveries have reached their final state, ..."
Original reads like the final delivery state is set each time an outbound
delivery is settled - rather than once after all outbounds have settled (as
implemented).
We need to be clear that the whole transfer "blocks" until the last
(slowest) consumer finishes.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]