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.
Integration Styles
Foundational ways independent applications exchange data and invoke behavior.
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.
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.
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.
Messaging
Applications exchange self-contained messages through channels, allowing senders and receivers to be decoupled in location and time while supporting reliable asynchronous processing.
Messaging Systems
The core vocabulary and building blocks of message-oriented integration.
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.
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.
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.
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.
Message Translator
Translate from one representation into another at an integration boundary so connected applications can evolve without sharing the same data shape.
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.
Messaging Channels
How messages are transported, delivered, isolated and bridged between systems.
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.
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.
Datatype Channel
Use a distinct channel for each message type or contract. The channel itself communicates what kind of payload consumers should expect.
Invalid Message Channel
Move messages that are structurally or semantically invalid to a dedicated channel for inspection instead of repeatedly failing normal processing.
Dead Letter Channel
Move undeliverable messages to a separate channel that preserves failure context and supports investigation, repair and controlled replay.
Guaranteed Delivery
Persist messages so infrastructure failures do not silently lose them. Delivery guarantees still require idempotent consumers and explicit failure handling.
Channel Adapter
Translate between an application's native interface and a messaging channel. The adapter isolates protocol and transport concerns from business logic.
Messaging Bridge
Connect separate brokers or channel technologies and forward messages between them while preserving the semantics needed by each side.
Message Bus
Standardize channels, contracts and adapters around a shared messaging backbone so applications can join or leave with limited point-to-point coupling.
Message Construction
How message intent, identity, timing and reply behavior are represented.
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.
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.
Event Message
Publish a notification that something has happened. Consumers react independently and the producer does not prescribe a specific action.
Request-Reply
Use a request message and a corresponding reply message, usually over separate channels, with addressing and correlation data that connect the interaction.
Return Address
Include the reply destination with the request so the provider can respond without being coupled to a specific caller or hardcoded channel.
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.
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.
Message Expiration
Attach a time-to-live or expiry timestamp so stale work is removed or diverted instead of producing outdated side effects.
Format Indicator
Include an explicit version or format identifier so consumers can select the correct parser, schema and transformation as contracts evolve.
Message Routing
How messages are split, directed, combined and coordinated across processing steps.
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.
Message Filter
Evaluate criteria and pass only messages that should continue. Non-matching messages are discarded or diverted according to the operational policy.
Dynamic Router
Let recipients advertise capabilities and make routing decisions from runtime state rather than a fixed destination list.
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.
Splitter
Break a composite message into smaller messages that can be processed independently, preserving identifiers needed for later aggregation or tracking.
Aggregator
Collect correlated messages until a completion condition is satisfied, then publish a single result produced by an aggregation algorithm.
Resequencer
Buffer related messages and release them in the intended sequence based on sequence numbers or ordering rules.
Composed Message Processor
Combine splitting, routing and aggregation into a coordinated flow that processes each element correctly and rebuilds a meaningful result.
Scatter-Gather
Send a request to several recipients in parallel and aggregate their replies into one result using a defined completeness and selection rule.
Routing Slip
Attach the remaining itinerary to the message and let each processor forward it to the next listed step.
Process Manager
Use a stateful coordinator that tracks process progress and determines the next action from business state, events and completion rules.
Message Broker
Place a broker between participants to route, transform and govern messages while shielding senders from destination-specific details.
Message Transformation
How messages are wrapped, enriched, reduced and normalized between data models.
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.
Content Enricher
Look up or compute missing information and add it to the message before forwarding it to the next participant.
Content Filter
Remove unneeded fields or simplify structure so downstream consumers receive only the data they require.
Claim Check
Store bulky content externally and send a small claim token that authorized consumers can use to retrieve the full payload.
Normalizer
Route each incoming format through the appropriate translator and produce one normalized representation for downstream processing.
Canonical Data Model
Define a shared integration model and translate each application format to and from it, reducing the number of direct pairwise transformations.
Messaging Endpoints
How applications consume, produce and safely interact with messaging infrastructure.
Messaging Gateway
Expose a domain-friendly interface that hides channel names, message construction and transport APIs from the rest of the application.
Messaging Mapper
Map domain objects to message representations at the endpoint boundary so business code is not coupled to broker-specific message types.
Transactional Client
Group message operations and related state changes into a transaction boundary so work is committed or rolled back consistently.
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.
Event-Driven Consumer
Register a handler that the messaging infrastructure invokes whenever a message arrives, enabling low-latency processing without explicit polling loops.
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.
Message Dispatcher
Use a dispatcher to receive from one channel and assign each message to an appropriate local performer or worker.
Selective Consumer
Apply selection criteria at the consumer or subscription so only matching messages are delivered to that endpoint.
Durable Subscriber
Keep a persistent subscription and retain events while the consumer is offline, allowing it to resume without losing relevant messages.
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.
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.
System Management
How distributed message flows are observed, tested, traced and operated.
Control Bus
Use a separate management channel for configuration, health, diagnostics and operational commands instead of mixing control traffic with business messages.
Detour
Temporarily divert selected traffic through an additional path and return it to the normal route afterward, without permanently redesigning the flow.
Wire Tap
Send a copy of each message to a secondary channel for observation while allowing the original message to continue unchanged.
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.
Message Store
Capture selected message metadata or payload references in a separate store for search, reporting, audit and replay without changing the primary flow.
Smart Proxy
Place a proxy between requestor and service that records correlation state, forwards requests and rewrites replies so the original interaction remains traceable.
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.
Channel Purger
Remove obsolete messages from a channel in a controlled way before a test, migration or operational reset.
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.