As the Message History describes, the architectural principle of loose coupling allows for flexibility in the solution, but can make it difficult to gain insight into the dynamic behavior of the integration solution.
How can we report against message information without disturbing the loosely coupled and transient nature of a messaging system?
Use a Message Store to capture information about each message in a central location.
When using a Message Store, we can take advantage of the asynchronous nature of a messaging infrastructure. When we send a message to a channel, we send a duplicate of the message to a special channel to be collected by the Message Store. This can be performed by the component itself or we can insert a Wire Tap into the channel. We can consider the secondary channel that carries a copy of the message as part of the Control Bus. Sending a second message in a 'fire-and-forget' mode will not slow down the flow of the main application messages. It does, however, increase network traffic. That's why we may not store the complete message, but just a few key fields that are required for later analysis, such as a message ID, or the channel on which the message was sent and a timestamp....
Related patterns: Control Bus, Message History, Wire Tap
Find the full description of this pattern in:|
Enterprise Integration Patterns
Gregor Hohpe and Bobby Woolf
Parts of this page are available under
the Creative Commons Attribution license.
You can reuse the pattern icon, the pattern name, the problem and solution statements (in bold), and the sketch
under this license. Other portions of the text, such as text chapters or the full pattern text, are protected