An enterprise has two separate applications that need to communicate, preferably by using Messaging.
How does one application communicate with another using messaging?
Connect the applications using a Message Channel, where one application writes information to the channel and the other one reads that information from the channel.
When an application has information to communicate, it doesn't just fling the information into the messaging system, it adds the information to a particular Message Channel. An application receiving information doesn't just pick it up at random from the messaging system; it retrieves the information from a particular Message Channel.
The application adding info doesn't necessarily know what particular application will end up retrieving the info, but it can be assured that whatever application retrieves the info, that application will be interested in the info. This is because the messaging system has different Message Channels for different types of information the applications want to communicate. When an application sends information, it doesn't randomly add the info to any channel available; it adds the info to a channel whose specific purpose is to communicate that sort of information. Likewise, an application that wants to receive particular information doesn't pull info off some random channel; it selects what channel to get information from based on what type of information it wants.
... Read the entire pattern in the book Enterprise Integration Patterns
Related patterns: Channel Adapter, Datatype Channel, Invalid Message Channel, Message Bus, Message Endpoint, Selective Consumer, Messaging, Introduction to Messaging Channels, Point-to-Point Channel, Publish-Subscribe Channel
You can reuse the following elements under the Creative Commons Attribution license: pattern icon, pattern name, problem and solution statements (in bold), and the sketch. Other portions are protected by copyright.
Enterprise Integration Patterns
The classic, as relevant as ever. Over 90,000 copies sold.
The Software Architect Elevator
Learn how architects can play a critical role in IT transformation by applying their technical, communication, and organizational skills.
Fill the large gap between high-level goals and product details by understanding decision trade-offs.