A Wire Tap is useful to inspect messages that travel across a channel. Sometimes, though, we need to modify or reroute the messages instead of simply inspecting them.
How can you route a message through intermediate steps to perform validation, testing or debugging functions?
Construct a Detour with a context-based router controlled via the Control Bus. In one state the router routes incoming messages through additional steps while in the other it routes messages directly to the destination channel.
The Detour uses a simple context-based router with two output channels. One output channel passes the unmodified message to the original destination. When instructed by the Control Bus, the Detour routes messages to a different channel. This channel sends the message to additional components that can inspect and/or modify the message. Ultimately, these components route the message to the same destination.
... Read the entire pattern in the book Enterprise Integration Patterns
Related patterns:
Control Bus, Publish-Subscribe Channel, Wire Tap