Integration pattern library

A practical language for designing integration flows.

Explore all 65 Enterprise Integration Patterns with concise GateSift explanations, common Azure implementations and links back to the original pattern catalogue.

65Patterns
8Categories
AzureImplementation mapping
65 patternsAcross the complete catalogue
4 patterns

Integration Styles

Foundational ways independent applications exchange data and invoke behavior.

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
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
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
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.

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
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
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
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
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
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.

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
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
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
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
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
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
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
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
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.

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
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
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
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
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
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
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
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
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.

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
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
Message Routing

Dynamic Router

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

dynamicdiscoveryrouting
View pattern
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
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
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
Message Routing

Resequencer

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

orderingsequencebuffer
View pattern
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
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
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
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
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.

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
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
Message Transformation

Content Filter

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

projectionfilterpayload
View pattern
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
Message Transformation

Normalizer

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

normalizationformatsmapping
View pattern
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.

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
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
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
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
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
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
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
Messaging Endpoints

Selective Consumer

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

selectorfiltersubscription
View pattern
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
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
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.

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
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
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
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
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
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
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
System Management

Channel Purger

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

purgecleanuptesting
View pattern
Built on the Enterprise Integration Patterns language

Pattern names and selected problem statements are adapted from Enterprise Integration Patterns by Gregor Hohpe and Bobby Woolf under CC BY 3.0. GateSift diagrams, summaries, Azure mappings and analyzer guidance are original. No endorsement by the original authors is implied.

Open original catalogue