This pattern catalog includes 65 integration patterns that we collected from integration projects and updated over two decades. They provide technology-independent design guidance for developers and architects to develop and document robust integration solutions. The 65 messaging patterns are organized as follows (click on the image or view the Table of Contents):
- Integration Styles document different ways applications can be integrated, providing a historical account of integration technologies. All subsequent patterns follow the Messaging style.
- Channel Patterns describe how messages are transported across a Message Channel. Most messaging systems implement these patterns.
- Message Construction Patterns describe the intent, form and content of the messages that travel across the messaging system. The Message pattern is the base pattern for this section.
- Routing Patterns discuss how messages are directed from a sender to the correct receiver(s). The patterns presented in this section are specializations of the Message Router pattern.
- Transformation Patterns change the content of a message, for example to accommodate different data formats used by the sending and the receiving system. Data may have to be added, taken away or existing data may have to be rearranged. The base pattern for this section is the Message Translator.
- Endpoint Patterns describe how applications produce or consume messages.
- System Management Patterns describe what's needed to keep a complex message-based system running smoothly.
Why Enterprise Integration Patterns?
Integration is a long-running topic in all aspects of software and IT, and it's too multi-faceted to be tackled with a simple 'cookbook' approach. Patterns, in contrast, document knowledge and experience that usually lives only in architects' heads. As accepted solutions to recurring problems, patterns are abstract enough to apply across integration technologies, but specific enough to provide hands-on guidance. They also provide a vocabulary to accurately describe solutions.
Patterns are not 'invented'; they are harvested from repeated use in practice. If you have built integration solutions, you likely have used some of these patterns, maybe in slight variations and perhaps calling them by a different name. This site condenses that experience into a coherent collection of proven patterns that form an integration pattern language. Patterns live in a specific context. This first set of patterns focus on Messaging. We also started to harvest Conversation patterns.
What products implement or use Enterprise Integration Patterns?
The patterns are independent of a specific implementation and help you design better solutions with any of the following platforms:
- Open source ESB's like Mule ESB, JBoss Fuse, Open ESB, WSo2, Spring Integration, or Talend ESB
- Message Brokers like ActiveMQ, Apache Kafka, or RabbitMQ
- EAI and SOA platforms, such as IBM WebSphere MQ, TIBCO, Vitria, Oracle Service Bus, WebMethods (now Software AG), Microsoft BizTalk, or Fiorano.
- Cloud-based integration, including Amazon Simple Queue Service (SQS), Amazon EventBridge, Google Cloud Pub/Sub, or Azure Service Bus.
- JMS-based messaging systems
- Microsoft technologies like MSMQ or Windows Communication Foundation (WCF)
How can you use the Patterns?
To encourage widespread use of the integration pattern language, many parts are available under open source licensing. You are free to use the pattern name, icon, problem and solution statements, and the sketches (the diagram below the solution statement) under the Creative Commons Attribution license.
The CC-BY license allows you share, use and modify these elements as long as you give proper attribution, such as a link to this site or a citation of the book. See the license for more detail.
You can do a lot more with the patterns:
- Build. Many open-source frameworks, such as Mule, Apache Camel, or Spring Integration incorporate our patterns. You can not only think in integration patterns, but also to code in them!
- Document. You can create design documents using our icon language by downloading the Visio stencil or using the OmniGraffle stencil created by one of our readers.
- Read. The book Enterprise Integration Patterns (Addison-Wesley, ISBN 0321200683) contains the full description of each pattern with plenty of examples -- over 700 pages worth of material. You can also read the full text on-line on Safari (with membership).
- Teach. A number of professors use our material in lectures. If you are interested in getting access to material for academic purposes, please contact us.
What about REST / SOA / Serverless / EDA Patterns?
The integration problems we solve today remain frustratingly similar to 20 years ago. The design knowledhe encapsulated in the patterns does not age like specific technologies. A list of modern examples shows how the patterns apply to integration technologies like Kafka, Google Cloud Pub/Sub, Amazon SQS or REST. I've also re-implemented the Loan Broker example application in AWS Lambda, EventBridge, and Step Functions and GCP PubSub and Workflows.
Be Part of the Community
Feel free to connect on LinkedIn. We welcome your feedback!
Contributors
The patterns on this site are the result of discussions involving numerous individuals. Kyle Brown (co-author of "Enterprise Java Programming for IBM WebSphere" and "The Design Patterns Smalltalk Companion"), John Crupi (co-author of "Core J2EE Patterns"), Martin Fowler (author of too many books to mention here), Rachel Reinitz, Mark Weitzel were part of the original discussions. Conrad D'Cruz, Sean Neville, Mike Rettig, Jonathan Simon ended up authoring examples, case studies, and a chapter on the future of integration.