Description. A party receives a number of logically
related
messages that arise from autonomous events occurring at different
parties. The arrival of messages needs to be timely so that
they can be correlated as a single logical request. The interaction may
complete successfully or not depending on the set of messages gathered.
Case 1: Expected
number of messages received within timeframe
Constraints: Three messages from
different customers are expected within 10 seconds. (In the terminology
of the pattern: stop condition = success condition = 3 messages
received, timeframe = 10 seconds).
Scenario: The required three message arrive on time (5 seconds) and
thus
the supplier service proceeds with subsequent processing. A fourth
message arrives later but since the interaction is considered as
completed, this message is not consumed.
Case 2: No time
constraint
Constraints: Three messages
from different customers are expected. (In
the terminology of the pattern: stop condition = success condition = 3
messages received, timeframe = unbounded).
Scenario: Three messages are received and thus the supplier service
proceeds with subsequent processing.
Case 3: Not enough
messages received within timeframe
Constraints: Four messages
from different customers are expected within 5 seconds. (In
the terminology of the pattern: stop condition = success condition = 4
messages, timeframe = 5 seconds).
Scenario: Only three messages are received after 5 seconds and thus the
one-from-many
receive completes with failure, thus an exception is raised.