Pattern library

75 messaging and reliability patterns.

Collections

75 patternsBrowse both collections or narrow the library using search
65 patterns

Enterprise Messaging

The original Enterprise Integration Patterns language for channels, routing, transformation, endpoints and operational messaging concerns.

4 patterns

Integration Styles

Foundational ways independent applications exchange data and invoke behavior.

Enterprise Messaging · Integration Styles

File Transfer

Exchange batches through files when systems are loosely connected in time or cannot call each other directly. The integration owns file naming, scheduling, transformation and recovery.

batchfilessftp
View pattern
Enterprise Messaging · Integration Styles

Shared Database

Let applications coordinate through a common data store. This can simplify consistency but also couples participants to a shared schema, ownership model and release process.

databasecouplingsql
View pattern
Enterprise Messaging · Integration Styles

Remote Procedure Invocation

Expose behavior through a callable interface so one application invokes another directly. It is intuitive but creates temporal and availability coupling between caller and provider.

apisynchronousrpc
View pattern
Enterprise Messaging · Integration Styles

Messaging

Applications exchange self-contained messages through channels, allowing senders and receivers to be decoupled in location and time while supporting reliable asynchronous processing.

asynchronousservice-busevents
View pattern
6 patterns

Messaging Systems

The core vocabulary and building blocks of message-oriented integration.

Enterprise Messaging · Messaging Systems

Message Channel

Use a logical channel as the transport boundary between producer and consumer. Channel semantics define delivery, ordering, durability and who may receive each message.

channelqueuetopic
View pattern
Enterprise Messaging · Messaging Systems

Message

Package data and metadata into a self-contained unit that can move independently through an integration flow. Headers carry routing and control context while the body carries business content.

payloadheadersmetadata
View pattern
Enterprise Messaging · Messaging Systems

Pipes and Filters

Break processing into independent filters connected by channels. Each step performs one responsibility, making the flow easier to compose, test and evolve.

pipelinecompositionflow
View pattern
Enterprise Messaging · Messaging Systems

Message Router

Insert routing logic that chooses one or more destinations without changing the message body. Centralizing the decision keeps producers and consumers unaware of each other.

routingbranchingrules
View pattern
Enterprise Messaging · Messaging Systems

Message Translator

Translate from one representation into another at an integration boundary so connected applications can evolve without sharing the same data shape.

mappingtransformationschema
View pattern
Enterprise Messaging · Messaging Systems

Message Endpoint

Encapsulate the protocol-specific code that sends to or receives from a channel. The application works through an endpoint rather than directly against transport details.

endpointadapterconnector
View pattern
9 patterns

Messaging Channels

How messages are transported, delivered, isolated and bridged between systems.

Enterprise Messaging · Messaging Channels

Point-to-Point Channel

Deliver each message to one consumer, even when several consumers compete for work. This supports scalable task distribution without duplicate processing by design.

queuesingle-consumerworkload
View pattern
Enterprise Messaging · Messaging Channels

Publish-Subscribe Channel

Publish once to a channel that fans the event out to every interested subscription. Producers remain unaware of how many consumers exist.

topicfanoutevents
View pattern
Enterprise Messaging · Messaging Channels

Datatype Channel

Use a distinct channel for each message type or contract. The channel itself communicates what kind of payload consumers should expect.

contracttypechannel
View pattern
Enterprise Messaging · Messaging Channels

Invalid Message Channel

Move messages that are structurally or semantically invalid to a dedicated channel for inspection instead of repeatedly failing normal processing.

validationinvaliderror
View pattern
Enterprise Messaging · Messaging Channels

Dead Letter Channel

Move undeliverable messages to a separate channel that preserves failure context and supports investigation, repair and controlled replay.

dlqfailurereplay
View pattern
Enterprise Messaging · Messaging Channels

Guaranteed Delivery

Persist messages so infrastructure failures do not silently lose them. Delivery guarantees still require idempotent consumers and explicit failure handling.

durabilityreliabilitydelivery
View pattern
Enterprise Messaging · Messaging Channels

Channel Adapter

Translate between an application's native interface and a messaging channel. The adapter isolates protocol and transport concerns from business logic.

adapterconnectortransport
View pattern
Enterprise Messaging · Messaging Channels

Messaging Bridge

Connect separate brokers or channel technologies and forward messages between them while preserving the semantics needed by each side.

bridgebrokersinteroperability
View pattern
Enterprise Messaging · Messaging Channels

Message Bus

Standardize channels, contracts and adapters around a shared messaging backbone so applications can join or leave with limited point-to-point coupling.

busbackbonegovernance
View pattern
9 patterns

Message Construction

How message intent, identity, timing and reply behavior are represented.

Enterprise Messaging · Message Construction

Command Message

Represent a request to perform an action as a message. The receiver interprets the message as an instruction rather than merely as data or notification.

commandoperationintent
View pattern
Enterprise Messaging · Message Construction

Document Message

Send a business document or data structure whose content matters more than immediate timing. The receiver decides how to process the transferred information.

documentdatacontract
View pattern
Enterprise Messaging · Message Construction

Event Message

Publish a notification that something has happened. Consumers react independently and the producer does not prescribe a specific action.

eventnotificationpubsub
View pattern
Enterprise Messaging · Message Construction

Request-Reply

Use a request message and a corresponding reply message, usually over separate channels, with addressing and correlation data that connect the interaction.

requestreplytwo-way
View pattern
Enterprise Messaging · Message Construction

Return Address

Include the reply destination with the request so the provider can respond without being coupled to a specific caller or hardcoded channel.

reply-tocallbackaddress
View pattern
Enterprise Messaging · Message Construction

Correlation Identifier

Carry a stable identifier that lets the receiver match a reply or related message to the originating request and trace a distributed interaction.

correlationtracerequest-reply
View pattern
Enterprise Messaging · Message Construction

Message Sequence

Split a large logical payload into an ordered sequence of messages carrying sequence position and completion information so it can be reconstructed safely.

sequencechunkingbatch
View pattern
Enterprise Messaging · Message Construction

Message Expiration

Attach a time-to-live or expiry timestamp so stale work is removed or diverted instead of producing outdated side effects.

ttlexpirystale
View pattern
Enterprise Messaging · Message Construction

Format Indicator

Include an explicit version or format identifier so consumers can select the correct parser, schema and transformation as contracts evolve.

versioningformatschema
View pattern
12 patterns

Message Routing

How messages are split, directed, combined and coordinated across processing steps.

Enterprise Messaging · Message Routing

Content-Based Router

Inspect message content and route to the destination whose rules match. Keep routing rules visible and maintainable because they often become a frequent change point.

routingcontentbranching
View pattern
Enterprise Messaging · Message Routing

Message Filter

Evaluate criteria and pass only messages that should continue. Non-matching messages are discarded or diverted according to the operational policy.

filterselectionrouting
View pattern
Enterprise Messaging · Message Routing

Dynamic Router

Let recipients advertise capabilities and make routing decisions from runtime state rather than a fixed destination list.

dynamicdiscoveryrouting
View pattern
Enterprise Messaging · Message Routing

Recipient List

Determine a set of recipients and send a copy to each one. The recipient list can be calculated from content, configuration or runtime context.

fanoutrecipientsrouting
View pattern
Enterprise Messaging · Message Routing

Splitter

Break a composite message into smaller messages that can be processed independently, preserving identifiers needed for later aggregation or tracking.

splitbatchfanout
View pattern
Enterprise Messaging · Message Routing

Aggregator

Collect correlated messages until a completion condition is satisfied, then publish a single result produced by an aggregation algorithm.

aggregatecorrelationstate
View pattern
Enterprise Messaging · Message Routing

Resequencer

Buffer related messages and release them in the intended sequence based on sequence numbers or ordering rules.

orderingsequencebuffer
View pattern
Enterprise Messaging · Message Routing

Composed Message Processor

Combine splitting, routing and aggregation into a coordinated flow that processes each element correctly and rebuilds a meaningful result.

compositesplit-joinworkflow
View pattern
Enterprise Messaging · Message Routing

Scatter-Gather

Send a request to several recipients in parallel and aggregate their replies into one result using a defined completeness and selection rule.

parallelfanoutaggregate
View pattern
Enterprise Messaging · Message Routing

Routing Slip

Attach the remaining itinerary to the message and let each processor forward it to the next listed step.

itinerarydynamicsequence
View pattern
Enterprise Messaging · Message Routing

Process Manager

Use a stateful coordinator that tracks process progress and determines the next action from business state, events and completion rules.

orchestrationstateworkflow
View pattern
Enterprise Messaging · Message Routing

Message Broker

Place a broker between participants to route, transform and govern messages while shielding senders from destination-specific details.

brokercentralrouting
View pattern
6 patterns

Message Transformation

How messages are wrapped, enriched, reduced and normalized between data models.

Enterprise Messaging · Message Transformation

Envelope Wrapper

Wrap an application's native payload in an integration envelope that carries required headers, security or transport metadata, then unwrap it at the destination.

envelopeheaderswrapper
View pattern
Enterprise Messaging · Message Transformation

Content Enricher

Look up or compute missing information and add it to the message before forwarding it to the next participant.

enrichmentlookuptransformation
View pattern
Enterprise Messaging · Message Transformation

Content Filter

Remove unneeded fields or simplify structure so downstream consumers receive only the data they require.

projectionfilterpayload
View pattern
Enterprise Messaging · Message Transformation

Claim Check

Store bulky content externally and send a small claim token that authorized consumers can use to retrieve the full payload.

large-messageblobreference
View pattern
Enterprise Messaging · Message Transformation

Normalizer

Route each incoming format through the appropriate translator and produce one normalized representation for downstream processing.

normalizationformatsmapping
View pattern
Enterprise Messaging · Message Transformation

Canonical Data Model

Define a shared integration model and translate each application format to and from it, reducing the number of direct pairwise transformations.

canonicalschemagovernance
View pattern
11 patterns

Messaging Endpoints

How applications consume, produce and safely interact with messaging infrastructure.

Enterprise Messaging · Messaging Endpoints

Messaging Gateway

Expose a domain-friendly interface that hides channel names, message construction and transport APIs from the rest of the application.

gatewayabstractionapi
View pattern
Enterprise Messaging · Messaging Endpoints

Messaging Mapper

Map domain objects to message representations at the endpoint boundary so business code is not coupled to broker-specific message types.

mapperdomainmessage
View pattern
Enterprise Messaging · Messaging Endpoints

Transactional Client

Group message operations and related state changes into a transaction boundary so work is committed or rolled back consistently.

transactionatomicityoutbox
View pattern
Enterprise Messaging · Messaging Endpoints

Polling Consumer

Ask the channel for messages on the consumer's schedule. Polling gives the application control over timing but requires sensible intervals and empty-read behavior.

pollingscheduleconsumer
View pattern
Enterprise Messaging · Messaging Endpoints

Event-Driven Consumer

Register a handler that the messaging infrastructure invokes whenever a message arrives, enabling low-latency processing without explicit polling loops.

event-driventriggerconsumer
View pattern
Enterprise Messaging · Messaging Endpoints

Competing Consumers

Run multiple consumers against the same point-to-point channel so workload is distributed while each message is handled by only one instance.

scaleconcurrencyqueue
View pattern
Enterprise Messaging · Messaging Endpoints

Message Dispatcher

Use a dispatcher to receive from one channel and assign each message to an appropriate local performer or worker.

dispatcherworkersconsumer
View pattern
Enterprise Messaging · Messaging Endpoints

Selective Consumer

Apply selection criteria at the consumer or subscription so only matching messages are delivered to that endpoint.

selectorfiltersubscription
View pattern
Enterprise Messaging · Messaging Endpoints

Durable Subscriber

Keep a persistent subscription and retain events while the consumer is offline, allowing it to resume without losing relevant messages.

durablesubscriptionoffline
View pattern
Enterprise Messaging · Messaging Endpoints

Idempotent Receiver

Design processing so receiving the same message more than once has the same effect as receiving it once, usually through deduplication or naturally idempotent operations.

idempotencyduplicateretry
View pattern
Enterprise Messaging · Messaging Endpoints

Service Activator

Connect a message endpoint to an application service and translate an incoming message into a normal method invocation, keeping business logic independent of transport.

serviceactivationadapter
View pattern
8 patterns

System Management

How distributed message flows are observed, tested, traced and operated.

Enterprise Messaging · System Management

Control Bus

Use a separate management channel for configuration, health, diagnostics and operational commands instead of mixing control traffic with business messages.

managementcontroloperations
View pattern
Enterprise Messaging · System Management

Detour

Temporarily divert selected traffic through an additional path and return it to the normal route afterward, without permanently redesigning the flow.

diagnosticstemporaryrouting
View pattern
Enterprise Messaging · System Management

Wire Tap

Send a copy of each message to a secondary channel for observation while allowing the original message to continue unchanged.

loggingauditcopy
View pattern
Enterprise Messaging · System Management

Message History

Attach a record of the components a message has traversed so teams can reconstruct its path and understand where transformations or failures occurred.

tracehistorydiagnostics
View pattern
Enterprise Messaging · System Management

Message Store

Capture selected message metadata or payload references in a separate store for search, reporting, audit and replay without changing the primary flow.

storeauditreporting
View pattern
Enterprise Messaging · System Management

Smart Proxy

Place a proxy between requestor and service that records correlation state, forwards requests and rewrites replies so the original interaction remains traceable.

proxycorrelationreply
View pattern
Enterprise Messaging · System Management

Test Message

Inject known test messages into the live path, separate their results and verify the outcome so hidden processing failures can be detected continuously.

testingsynthetichealth
View pattern
Enterprise Messaging · System Management

Channel Purger

Remove obsolete messages from a channel in a controlled way before a test, migration or operational reset.

purgecleanuptesting
View pattern
10 patterns

Reliability & Delivery

Cloud reliability patterns for transient faults, distributed consistency, load protection, monitoring and recoverable processing.

3 patterns

Fault Handling

Contain transient and long-running failures before they cascade through an integration flow.

Reliability & Delivery · Fault Handling

Retry

Repeat an operation after a controlled delay when the failure is likely to be transient. Bound the number of attempts, add backoff and jitter, and combine retries with idempotency and an explicit final failure path.

transient-faultsbackoffresilience
View pattern
Reliability & Delivery · Fault Handling

Circuit Breaker

Track failures and temporarily stop calls to an unhealthy dependency. Closed, open and half-open states let the system fail fast while still testing whether the dependency has recovered.

fail-fastdependencyrecovery
View pattern
Reliability & Delivery · Fault Handling

Bulkhead

Partition resources and workloads into isolated pools so one overloaded tenant, connector or dependency cannot consume all available capacity or spread failure across the entire solution.

isolationcapacityfault-containment
View pattern
2 patterns

Distributed Consistency

Coordinate multi-step work and restore a valid business state when part of a distributed operation fails.

Reliability & Delivery · Distributed Consistency

Compensating Transaction

Record enough business context to execute compensating actions for completed steps. Compensation restores a valid state rather than attempting an impossible distributed rollback.

compensationrollbackeventual-consistency
View pattern
Reliability & Delivery · Distributed Consistency

Saga

Break a distributed transaction into local transactions connected by commands or events. Each completed step has a compensating action so failures can be recovered without a global database transaction.

distributed-transactionorchestrationcompensation
View pattern
2 patterns

Load Protection

Control demand, isolate capacity and keep downstream services within safe operating limits.

Reliability & Delivery · Load Protection

Queue-Based Load Leveling

Place a durable queue between producers and consumers so bursts are buffered and processed at a sustainable rate. Capacity can then scale independently on either side of the queue.

queuebufferingbackpressure
View pattern
Reliability & Delivery · Load Protection

Throttling

Measure consumption and delay, reject or degrade requests that exceed defined limits. Good throttling communicates limits clearly and protects both shared capacity and important workloads.

rate-limitquotacapacity
View pattern
3 patterns

Operational Resilience

Detect unhealthy work, coordinate recovery and keep long-running processing observable and recoverable.

Reliability & Delivery · Operational Resilience

Health Endpoint Monitoring

Expose functional health checks that external monitoring can call regularly. Checks should distinguish basic process liveness from readiness and dependency health without leaking sensitive details.

health-checkmonitoringavailability
View pattern
Reliability & Delivery · Operational Resilience

Leader Election

Use a lease or distributed coordination mechanism to select one active leader while other instances remain eligible to take over. Leadership must expire safely when the current owner fails.

coordinationleasesingleton
View pattern
Reliability & Delivery · Operational Resilience

Scheduler Agent Supervisor

Separate coordination, remote work and supervision. Durable step state and completion deadlines allow a supervisor to detect failed or timed-out work and arrange retry, recovery or compensation.

workflowrecoverysupervision
View pattern
Two curated source families, one GateSift experience

Enterprise Messaging preserves the Enterprise Integration Patterns catalogue and its CC BY 3.0 attribution. Reliability & Delivery links to Microsoft Azure Architecture Center guidance. GateSift summaries, diagrams, Azure mappings and analyzer signals are original and do not imply endorsement by either source.