| Content Based Router | How 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 | How can a component avoid receiving uninteresting messages? |
| Dynamic Router | How can you avoid the dependency of the router on all possible destinations while maintaining its efficiency? |
| Recipient List | How do we route a message to a list of (static or dynamically) specified recipients? |
| Splitter | How can we process a message if it contains multiple elements, each of which may have to be processed in a different way? |
| Aggregator | How do we combine the results of individual, but related messages so that they can be processed as a whole? |
| Resequencer | How can we get a stream of related but out-of-sequence messages back into the correct order? |
Image Added | 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 | How do we route a message consecutively through a series of processing steps when the sequence of steps is not known at design-time and may vary for each message? |
| Throttler | How can I throttle messages to ensure that a specific endpoint does not get overloaded, or we don't exceed an agreed SLA with some external service? |
| Delayer | How can I delay the sending of a message? |
| Load Balancer | How can I balance load across a number of endpoints? |
| Multicast | How 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? |