SOA Patterns > Service Messaging Patterns > Intermediate Routing
Intermediate Routing (Little, Rischbeck, Simon)
How can dynamic runtime factors affect the path of a message?
The larger and more complex a service composition is, the more difficult it is to anticipate and design for all possible runtime scenarios in advance, especially with asynchronous, messagingbased communication.
Message paths can be dynamically determined through the use of intermediary routing logic.
Various types of intermediary routing logic can be incorporated to create message paths based on message content or runtime factors.
Dynamically determining a message path adds layers of processing logic and correspondingly can increase performance overhead. Also the use of multiple routing logic can result in overly complex service activities.
A message passes through two router agents before it arrives at its destination. The Rules-Based Router identifies the target service based on a business rule that the agent dynamically retrieves and interprets, as a consequence of Rules Centralization. The Load Balancing Router then checks current usage statistics for that service before it decides which instance or redundant implementation of the service to send the message to.