Description. A party sends notifications to several
parties
such that a certain number of parties are required to accept the
notification within a certain timeframe. For example, all parties or
just one party are required to accept the notification. In general, the
constraint for successful notification applies over a range between a
minimum and maximum number.
Case 1: Successful
all-or-none multicast
Constraints: The customer
sends requests to four suppliers and wishes to ensure that either all
four suppliers must consume the notification or none of them must do so
(in the terminology of the pattern: stop condition = success condition
= 4 positive responses received). The timeframe by which the customer
expects to receive feedback from the suppliers is 5 seconds, i.e. if
within 5 seconds the customer is unable to determine that all suppliers
are able to consume the message then the the whole multicast
notification is aborted and no supplier will consume the notification.
Scenario: The customer sends
notifications to the four suppliers. All four suppliers respond within 5 seconds indicating their
willingness to consume the notification (messages denoted by green
circles in the animation). Hence the customer sends a "commit"
message (also denoted with green circles) to indicate to the suppliers
to consume the notification.
Case 2:
Unsuccessful all-or-none multicast
Constraints: Same as in the
previous case.
Scenario: The customer sends notifications to the
four suppliers. However, only two suppliers positively respond
within 5 seconds (messages denoted by green circles in the animation).
Hence the customer sends an "abort" message (denoted with red
circles) to indicate to the suppliers not to consume the notification. In the meantime, a third supplier has
responded positively to the original notification, but this response is
ignored since the decision to abort has already been taken by the
customer.