LibraryToggle FramesPrintFeedback

The message routing patterns, shown in Table 3.4, describe various ways of linking message channels together, including various algorithms that can be applied to the message stream (without modifying the body of the message).

Table 3.4. Message Routing

IconNameUse Case
Content based router iconContent Based RouterHow do we handle a situation where the implementation of a single logical function (e.g., inventory check) is spread across multiple physical systems?
Message filter iconMessage FilterHow does a component avoid receiving uninteresting messages?
Recipient List iconRecipient ListHow do we route a message to a list of dynamically specified recipients?
Splitter iconSplitterHow can we process a message if it contains multiple elements, each of which might have to be processed in a different way?
Aggregator iconAggregatorHow do we combine the results of individual, but related messages so that they can be processed as a whole?
Resequencer iconResequencerHow can we get a stream of related, but out-of-sequence, messages back into the correct order?
Composed Message Processor How can you maintain the overall message flow when processing a message consisting of multiple elements, each of which may require different processing?
Scatter-Gather How do you maintain the overall message flow when a message needs to be sent to multiple recipients, each of which may send a reply?
Routing slip iconRouting SlipHow do we route a message consecutively through a series of processing steps when the sequence of steps is not known at design-time, and might vary for each message?
 ThrottlerHow can I throttle messages to ensure that a specific endpoint does not get overloaded, or that we don't exceed an agreed SLA with some external service?
 DelayerHow can I delay the sending of a message?
 Load BalancerHow can I balance load across a number of endpoints?
 MulticastHow can I route a message to a number of endpoints at the same time?
Loop How can I repeat processing a message in a loop?
 SamplingHow can I sample one message out of many in a given period to avoid downstream route does not get overloaded?

Comments powered by Disqus
loading table of contents...