Skip to content

Message Routing

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 section introduces various types of routers and how they can be simulated using the WSO2 Micro Integrator.

Content-Based Router content-based-router How to handle a situation when the implementation of a single logical function (such as an inventory check) is spread across multiple physical systems.
Message Filter message-filter How a component avoids receiving uninteresting messages.
Dynamic Router dynamic-router How to avoid the dependency of a router in all possible destinations, while maintaining its efficiency.
Recipient List recipient-list How to route a message to a list of dynamically specified recipients.
Splitter splitter How to process a message if it contains multiple elements, each of which may have to be processed in a different way.
Aggregator aggregator How to combine the results of individual but related messages so that they can be processed as a whole.
Composed Message Processor distribution-aggregate How to maintain the overall flow when processing a message consisting of multiple elements, each of which may require different processing.
Scatter-Gather Scatter-Gather How to maintain the overall flow when a message needs to be sent to multiple recipients, each of which may send a reply.
Routing Slip routing-table 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.
Process Manager process-manager 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.
Message Broker message-broker How to decouple the destination of a message from the sender and maintain central control over the flow of messages.