Overview
Modern organizations rarely operate a single application.
Most enterprises depend on dozens or even hundreds of systems that must exchange information and work together.
Architects frequently face questions such as:
How Do We Integrate External Partners?
How Do We Handle Failures?
How Do We Transform Data?
How Do We Reduce Coupling?
How Do We Scale Integrations?
Integration Patterns provide proven solutions to recurring integration challenges that appear across industries and technologies.
Integration patterns are not about tools or platforms. They are about solving communication and coordination problems between systems.
A Running Example
Throughout this page we will use a healthcare diagnostics platform as a running example.
Order Service
Billing Service
Insurance Provider
Laboratory Vendor
Notification Service
Reporting Service
The platform must interact with multiple internal and external systems.
Each system may use different protocols, formats, availability models, and ownership structures.
Validate Insurance
Submit Lab Requests
Receive Results
Notify Patients
Generate Reports
Integration patterns help manage these interactions in a predictable and maintainable manner.
Why Integration Patterns Matter
Integration is often one of the most complex areas of enterprise architecture.
Systems evolve independently, failures occur unexpectedly, formats differ, and performance characteristics vary significantly.
| Challenge | Typical Impact |
|---|---|
| Different Data Formats | Transformation Required |
| Independent Releases | Compatibility Risks |
| System Failures | Processing Interruptions |
| Network Issues | Communication Delays |
| Scaling Requirements | Throughput Challenges |
Without proper patterns, integrations often become difficult to understand, maintain, and troubleshoot.
↓
Growing Integrations
↓
Growing Complexity
Many architecture problems eventually become integration problems as organizations scale.
Integration Challenges
Designing integrations is rarely about choosing a technology.
It is often about solving practical business and operational problems.
Format Differences
Different systems frequently use different message structures and standards.
Availability Differences
One system may be online while another becomes temporarily unavailable.
Ownership Differences
Partner systems evolve according to their own priorities and schedules.
Performance Differences
Some systems respond immediately while others require minutes or hours.
Failure Handling
Every integration must consider what happens when communication fails.
↓
Different Constraints
↓
Integration Challenges
Understanding these challenges is often more important than understanding individual integration patterns.
Strong architects explain how they handle integration challenges before discussing specific technologies.
Choosing An Integration Pattern
There is no universally correct integration pattern.
The right approach depends on business requirements, operational constraints, responsiveness requirements, and failure tolerance.
| Requirement | Possible Direction |
|---|---|
| Immediate Response Required | Request-Reply |
| Multiple Consumers | Publish-Subscribe |
| Format Differences | Message Translator |
| Dynamic Routing | Content-Based Router |
| Response Aggregation | Aggregator |
| Large Payloads | Claim Check |
↓
Integration Challenge
↓
Pattern Selection
Patterns should be selected because they solve specific problems, not because they are popular.
Successful integrations focus on reliability, maintainability, and operational simplicity rather than architectural elegance alone.
Point-To-Point Integration
Point-To-Point integration is the simplest form of system communication.
One system communicates directly with another system.
↓
Billing Service
There are no intermediaries, brokers, or routing components involved.
Benefits:
- Simple To Implement
- Low Initial Cost
- Easy To Understand
- Fast Communication
Challenges:
- Tight Coupling
- Difficult To Scale
- Connection Explosion As Systems Grow
- Change Impacts Multiple Systems
Works Well When:
- Only A Few Systems Exist
- Requirements Are Simple
- Limited Integrations Are Required
Avoid When:
- Many Systems Must Communicate
- Frequent Changes Are Expected
- Enterprise Scale Is Required
↓
Point-To-Point Works Well
20 Systems
↓
Complex Dependency Network
Point-To-Point is often the right starting point, but it rarely remains the right long-term solution.
Shared Database Integration
Shared Database integration occurs when multiple systems access the same database.
Application B
Application C
↓
Shared Database
This approach is common in enterprise environments because it appears simple.
Benefits:
- Single Source Of Data
- Simple Initial Implementation
- Minimal Integration Logic
Challenges:
- Strong Coupling
- Shared Ownership Problems
- Schema Change Risks
- Limited Service Autonomy
Works Well When:
- Applications Are Closely Related
- Ownership Is Centralized
- Simple Solutions Are Needed
Avoid When:
- Independent Teams Exist
- Service Ownership Matters
- Microservices Are Being Adopted
A shared database is not automatically bad, but shared ownership almost always becomes a challenge as organizations grow.
File Transfer Integration
File Transfer remains one of the most widely used integration approaches in large enterprises.
Despite modern APIs and messaging platforms, organizations still exchange significant amounts of information using files.
XML Files
JSON Files
EDI Documents
Reports
A system generates a file and another system processes it later.
↓
Transfer File
↓
Process File
Benefits:
- Simple Integration Model
- Works Across Organizations
- Handles Large Data Volumes
- Supports Batch Processing
Challenges:
- Not Real-Time
- Delayed Processing
- Versioning Challenges
- Error Handling Complexity
Works Well When:
- Batch Processing Is Acceptable
- Large Data Volumes Exist
- External Organizations Participate
Many enterprise integrations still rely on files because reliability and simplicity often matter more than sophistication.
Request-Reply
Request-Reply is the most familiar integration style.
A system sends a request and expects an immediate response.
↓
Remote System
↓
Response
Examples include:
- Patient Retrieval
- Insurance Validation
- Pricing Requests
- Account Verification
Benefits:
- Simple Interaction Model
- Immediate Results
- Easy To Understand
Challenges:
- Dependency On Availability
- Network Latency
- Cascading Failures
- Limited Scalability
Works Well When:
- Immediate Answers Are Required
- User Experience Depends On Real-Time Responses
- Low Latency Is Needed
Avoid When:
- Long Processing Times Exist
- Consumers Can Work Asynchronously
- Temporary Delays Are Acceptable
↓
Request-Reply Is Often Appropriate
Request-Reply is simple, but every synchronous dependency introduces availability and latency risks.
Publish-Subscribe
Publish-Subscribe allows systems to react to events without creating direct dependencies.
The producer publishes information without knowing who will consume it.
↓
Publish Event
↓
Billing Service
Notification Service
Reporting Service
Benefits:
- Loose Coupling
- Easy Expansion
- Independent Consumers
- Scalable Integrations
Challenges:
- Event Tracking Complexity
- Ordering Challenges
- Eventual Consistency
- Debugging Difficulties
Works Well When:
- Multiple Consumers Need Information
- Asynchronous Processing Is Acceptable
- Future Expansion Is Expected
Avoid When:
- Immediate Responses Are Required
- A Single Consumer Exists
↓
Many Consumers
↓
Independent Processing
Publish-Subscribe is one of the most effective ways to reduce integration coupling while supporting future growth.
Message Channel
A Message Channel provides a dedicated pathway through which messages travel between producers and consumers.
Rather than communicating directly, systems communicate through the channel.
↓
Message Channel
↓
Consumer
The channel becomes a controlled communication boundary.
Benefits:
- Decoupled Communication
- Improved Flexibility
- Easier Monitoring
- Independent Evolution
Challenges:
- Operational Overhead
- Additional Infrastructure
- Governance Requirements
Works Well When:
- Multiple Producers Exist
- Multiple Consumers Exist
- Long-Term Integration Flexibility Is Required
Do Not Need To Know
Each Other Directly
Message Channels create separation between systems, making integrations easier to evolve and manage over time.
Message Router
As integrations grow, deciding where messages should be delivered becomes increasingly important.
A Message Router determines the destination of a message and forwards it appropriately.
↓
Message Router
↓
Destination System
Rather than allowing producers to decide delivery destinations, routing logic is centralized.
Benefits:
- Centralized Routing Logic
- Simplified Producers
- Improved Maintainability
- Easier Expansion
Challenges:
- Additional Infrastructure
- Potential Routing Bottleneck
- Routing Logic Management
Works Well When:
- Multiple Destinations Exist
- Routing Rules Frequently Change
- Integration Complexity Is Growing
Avoid When:
- Only One Destination Exists
- Routing Rules Never Change
Message Routers reduce coupling by preventing producers from needing detailed knowledge about integration destinations.
Content-Based Router
A Content-Based Router examines message content and determines routing based on business rules.
The destination depends on the information contained inside the message.
↓
Content-Based Router
↓
Cardiology
Radiology
Pathology
In the diagnostics platform, different test types may require different downstream processing workflows.
Benefits:
- Dynamic Routing
- Flexible Processing Flows
- Business Rule Driven Decisions
Challenges:
- More Complex Routing Logic
- Rule Maintenance
- Growing Decision Complexity
Works Well When:
- Multiple Processing Paths Exist
- Business Rules Drive Routing
- Destinations Depend On Payload Data
Avoid When:
- Routing Is Static
- A Single Processing Path Exists
↓
Apply Business Rules
↓
Select Destination
Content-Based Routing is often preferred when routing decisions belong to the business domain rather than infrastructure.
Message Translator
Different systems frequently use different data models, formats, and conventions.
A Message Translator converts information from one format into another.
↓
Message Translator
↓
Internal Format
For example, an external laboratory vendor may send data that differs from the platform’s internal model.
The translator creates a consistent representation that downstream services understand.
Benefits:
- Reduced Integration Coupling
- Format Independence
- Vendor Isolation
- Simplified Internal Design
Challenges:
- Mapping Complexity
- Version Management
- Additional Processing Overhead
Works Well When:
- Systems Use Different Formats
- External Partners Exist
- Data Standardization Is Required
Avoid When:
- Formats Already Match
- No Transformation Is Needed
Message Translators are among the most commonly used integration patterns because systems rarely speak the same language.
Message Filter
Not every message is relevant to every consumer.
A Message Filter removes messages that do not satisfy specific criteria.
↓
Filter
↓
Relevant Messages Only
This prevents downstream systems from processing unnecessary information.
Benefits:
- Reduced Processing Load
- Simplified Consumers
- Improved Efficiency
Challenges:
- Filter Logic Maintenance
- Potential Filtering Errors
Works Well When:
- Large Message Volumes Exist
- Only Subsets Of Data Are Required
- Noise Reduction Is Needed
Avoid When:
- Consumers Need All Messages
- Filtering Rules Are Unclear
↓
Apply Criteria
↓
Relevant Messages
Aggregator
An Aggregator combines information from multiple sources into a single response or message.
This pattern is common when users need a unified view of distributed information.
Billing Service
Order Service
↓
Aggregator
↓
Unified Patient View
Instead of requiring consumers to call every backend system individually, the aggregator performs the consolidation.
Benefits:
- Simplified Consumption
- Reduced Client Complexity
- Consolidated Responses
Challenges:
- Dependency On Multiple Systems
- Potential Latency Increases
- Partial Failure Handling
Works Well When:
- Information Exists Across Systems
- Consumers Need Unified Views
- Backend Complexity Must Be Hidden
Avoid When:
- Consumers Need Independent Data Access
- Aggregation Adds Unnecessary Complexity
Aggregators improve user experiences by hiding distributed system complexity behind a simplified interface.
Splitter
A Splitter divides a large message or request into multiple smaller units that can be processed independently.
This pattern is useful when different parts of the message require separate processing.
↓
Splitter
↓
Multiple Smaller Requests
For example, a diagnostic order containing many tests may be broken into independent requests for multiple laboratory systems.
Benefits:
- Parallel Processing
- Improved Scalability
- Flexible Work Distribution
- Independent Processing
Challenges:
- Result Coordination
- Tracking Complexity
- Reassembly Requirements
Works Well When:
- Large Requests Exist
- Parallel Processing Is Valuable
- Independent Workflows Are Needed
Avoid When:
- Requests Are Already Small
- Splitting Adds More Complexity Than Value
↓
Independent Units
↓
Parallel Processing
Splitters become increasingly useful as workloads grow and parallel execution opportunities emerge.
Claim Check
Sometimes messages become too large to efficiently transport through an integration channel.
The Claim Check pattern stores the large payload separately and sends only a lightweight reference.
↓
Store Payload
↓
Send Reference ID
↓
Retrieve Payload Later
For example, medical images, laboratory reports, PDFs, and diagnostic attachments can become very large.
Instead of embedding the entire payload inside a message, the integration transmits a reference.
Benefits:
- Smaller Messages
- Reduced Network Overhead
- Improved Throughput
- More Efficient Message Processing
Challenges:
- Additional Storage Management
- Reference Tracking
- Payload Retrieval Complexity
Works Well When:
- Large Documents Exist
- Images Are Exchanged
- Message Size Limits Exist
Avoid When:
- Payloads Are Small
- Retrieval Complexity Adds Limited Value
Claim Check is often introduced after systems encounter performance problems caused by transporting large payloads unnecessarily.
Dead Letter Channel
No integration is perfect. Messages occasionally fail processing due to temporary outages, invalid data, or unexpected conditions.
A Dead Letter Channel captures failed messages for later investigation.
↓
Failure Occurs
↓
Dead Letter Channel
↓
Investigation & Recovery
Benefits:
- Prevents Message Loss
- Supports Recovery
- Improves Operational Visibility
- Simplifies Troubleshooting
Challenges:
- Operational Monitoring Required
- Recovery Strategy Needed
- DLQ Growth Management
Works Well When:
- Reliable Message Processing Is Important
- Failures Must Be Investigated
- Data Loss Is Unacceptable
Avoid When:
- Messages Are Non-Critical
- Failure Handling Is Not Required
↓
Do Not Lose Message
↓
Move To Dead Letter Channel
One of the easiest ways to lose operational trust is silently discarding failed messages.
Idempotent Receiver
Distributed systems frequently deliver the same message more than once.
An Idempotent Receiver ensures duplicate messages do not produce duplicate outcomes.
↓
Duplicate Check
↓
Process Once
For example, a billing event processed twice could create duplicate charges.
An idempotent receiver prevents this outcome.
Benefits:
- Duplicate Protection
- Safer Retries
- Improved Reliability
- Operational Confidence
Challenges:
- Tracking Processed Messages
- Additional Storage Requirements
- Duplicate Detection Logic
Works Well When:
- Retries Are Common
- At-Least-Once Delivery Exists
- Financial Or Business Operations Are Involved
Avoid When:
- Duplicates Cannot Occur
- Processing Is Naturally Idempotent
Assume duplicate delivery will happen. Design receivers accordingly.
Integration Pattern Combinations
Enterprise integrations rarely use a single pattern.
Most production solutions combine multiple patterns to address different requirements.
Publish-Subscribe + Content-Based Router
↓
Content-Based Routing
↓
Multiple Consumer Workflows
Translator + Request-Reply
↓
Translate Format
↓
Receive Response
Splitter + Aggregator
↓
Splitter
↓
Parallel Processing
↓
Aggregator
Publish-Subscribe + DLQ + Idempotent Receiver
↓
Failure Protection
↓
Duplicate Protection
This combination-based thinking is how real integration architectures evolve.
The most effective integration solutions combine complementary patterns rather than forcing a single pattern to solve every problem.
Pattern Selection Framework
A common architect responsibility is selecting the simplest pattern that satisfies business requirements.
| Requirement | Pattern To Consider |
|---|---|
| Immediate Response | Request-Reply |
| Multiple Consumers | Publish-Subscribe |
| Dynamic Routing | Content-Based Router |
| Format Transformation | Message Translator |
| Data Consolidation | Aggregator |
| Parallel Work Distribution | Splitter |
| Large Payloads | Claim Check |
| Failure Handling | Dead Letter Channel |
| Duplicate Prevention | Idempotent Receiver |
↓
Integration Problem
↓
Pattern Selection
Real-World Case Study
Consider a diagnostic order submitted through the healthcare platform.
↓
Publish Event
↓
Content-Based Router
↓
Insurance Provider
Laboratory Vendor
Notification Workflow
External partners use different message structures.
↓
Message Translator
↓
Internal Format
Large diagnostic images are stored separately.
↓
Retrieve Image When Needed
Failures are captured for investigation.
↓
Dead Letter Channel
Duplicate events are ignored safely.
↓
Idempotent Receiver
↓
Process Once
This example demonstrates how multiple integration patterns work together to create a resilient enterprise integration solution.
Good integrations are designed around business workflows rather than individual technologies.
Integration Review Checklist
The following checklist can be used during architecture reviews and integration design sessions.
✅ Target System Defined
✅ Ownership Defined
✅ Communication Style Defined
✅ Data Format Defined
✅ Security Reviewed
✅ Retry Strategy Defined
✅ Failure Handling Defined
✅ Dead Letter Strategy Defined
✅ Duplicate Handling Defined
✅ Monitoring Defined
✅ Alerting Defined
✅ Operational Ownership Defined
Integration Canvas
The Integration Canvas provides a practical framework for documenting integration decisions.
| Area | Example |
|---|---|
| Source System | Order Service |
| Target System | Laboratory Vendor |
| Integration Style | Publish-Subscribe |
| Pattern Selected | Translator + Router |
| Transformation Needs | Vendor Mapping |
| Failure Strategy | Retry + DLQ |
| Duplicate Handling | Idempotent Processing |
| Monitoring | Metrics + Alerts |
| Ownership | Integration Team |
| Primary Risk | Partner Availability |
Common Anti-Patterns
Point-To-Point Spaghetti
Every system connects directly to every other system, creating a dependency nightmare.
Shared Database Everywhere
Multiple systems depend on the same schema and ownership becomes unclear.
Synchronous Everything
Every operation waits on another system, creating latency and cascading failures.
No Retry Strategy
Temporary failures immediately become business failures.
No Dead Letter Channel
Failed messages disappear without visibility.
No Idempotency
Duplicate messages cause inconsistent business behavior.
Hidden Dependencies
Critical integrations are undocumented and difficult to maintain.
No Monitoring
Failures occur without detection until business users report them.
Most integration failures originate from operational blind spots rather than technology limitations.
How Patterns Connect
↓
Integration Patterns
↓
Messaging Patterns
↓
Distributed Systems
↓
Reliability & Resilience
↓
Observability & Operations
Integration patterns influence system scalability, reliability, security, observability, and operational complexity.
As organizations grow, integration architecture often becomes one of the most important factors influencing overall system success.
Key Takeaway
They are proven approaches for helping systems communicate effectively.
Every pattern exists because organizations repeatedly encountered the same integration problems.
The objective is not choosing the most sophisticated pattern.
The objective is choosing the simplest integration approach that satisfies business requirements while remaining reliable, maintainable, observable, and scalable.
Successful architects start with integration challenges, not integration technologies.
When recurring communication problems appear, integration patterns provide proven solutions.
The best integrations reduce coupling, improve resilience, support independent evolution, and remain understandable long after they are deployed.