The Content-Based Router EIP is the mostly used form of the more generic Message Router pattern. With the Content-Based Router, the system should know the capabilities of the backend business services beforehand. That is how we route payments with card type VISA to
VISAProcessingService and with card type AMEX to
AMEXProcessingService. The downside of this approach is whenever we add or remove a business service, we need to change the configuration, or reconfigure the Content-Based Router.
The following image extracted from Enterprise Integration Patterns book by Gregor Hohpe, illustrates a request from the input channel being routed to different output channels based on the rules picked from the dynamic rule base: