A message router is a basic architectural pattern of a messaging system used fundamentally for connecting different message channels. A router consumes a message from one message channel and republishes it to a different channel based on specified conditions.
This chapter introduces various types of routers and how each of them can be simulated using WSO2 ESB.
How to handle a situation when the implementation of a single logical function (such as an inventory check) is spread across multiple physical systems.
How a component avoids receiving uninteresting messages.
How to avoid the dependency of a router in all possible destinations, while maintaining its efficiency.
How to route a message to a list of dynamically specified recipients.
How to process a message if it contains multiple elements, each of which may have to be processed in a different way.
How to combine the results of individual but related messages so that they can be processed as a whole.
How to get a stream of related but out-of-sequence messages back into the correct order.
How to maintain the overall flow when processing a message consisting of multiple elements, each of which may require different processing.
|How to maintain the overall flow when a message needs to be sent to multiple recipients, each of which may send a reply.|
How to route a message consecutively through a series of steps when the sequence of the steps is not known at design time and may vary for each message.
How to route a message through multiple processing steps, when the required steps may not be known at design time and may not be sequential.
How to decouple the destination of a message from the sender and maintain central control over the flow of messages.