Cohesive Systems logoCOHESIVE SYSTEMS

Search Cohesive Systems

Ready

Search Cohesive Systems

Find product pages, building blocks, technical articles, and graph definitions.

Enterprise Integration Patterns

Enterprise Integration Patterns, or EIP, is a technology-independent pattern language for message-based integration. Cohesive uses the catalog as an important architecture vocabulary while preserving the distinction among domain semantics, system-graph structure, operational concerns, architecture practices, and realization substrate.

An EIP pattern is not automatically a Cohesive semantic primitive. A pattern may instead:

  • Carry a semantic value or intended interpretation in a message.
  • Arrange messages, channels, routes, endpoints, or flow operators in the system graph.
  • Require delivery, ordering, compatibility, correlation, retention, or recovery guarantees.
  • Realize an interaction through a broker, file exchange, database, application host, or network protocol.
  • Compose several lower-level structures and guarantees into an architecture practice.

Foundational Correspondence

Message emission and ingress are occurrences. At a receiving boundary, message ingress is an exogenous event carrying a value. A message contract may explicitly express singular command intent, report an occurrence, transfer a document, request a reply, or signal another protocol role. That contract supplies strong evidence for interpretation without replacing the receiving observer that admits and interprets the input.

The transport medium remains distinct from the semantic construct while maintaining an explicit correspondence. A channel or broker realizes delivery; a message carries a value and contract; an observer interprets the received occurrence; a transition or process determines the resulting semantic work.

Later Control-Flow Extension

The original EIP catalog mainly depicts the data flow of messages through endpoints, channels, routers, and transformers. Gregor Hohpe's later control-flow extension adds a second, orthogonal question: which element actively drives each interaction? Cohesive represents this as interaction control flow.

The extension distinguishes active senders and fetchers from passive sinks and sources. Applying those roles independently to both ports of a stage yields pushers, pullers, queues, and drivers. A queue accepts an active producer on one side and serves an active fetcher on the other, separating arrival cadence from departure cadence. A driver actively fetches and pushes, giving it direct control over polling, batching, and rate.

This is not a sixty-sixth peer pattern or a new semantic primitive. It is a cross-cutting operational facet of the original patterns, especially Pipes and Filters, Message Channel, Polling Consumer, Event-Driven Consumer, Competing Consumers, and broker-backed routing. A pattern diagram should state whether each arrow depicts message or data movement, interaction control, causal order, or process progression because those directions can differ.

Realm Orientation and Domain Reconciliation

EIP patterns tend to gravitate toward System Graph, Operational Concerns, and Realization Substrate. They are strongest at describing carriers, paths, endpoints, transformations, routing, delivery arrangements, and management structures. DDD gravitates toward Domain Semantics and the architecture practices that preserve semantic boundaries, authority, invariants, and ubiquitous language.

The two vocabularies meet through explicit correspondence rather than identification:

EIP constructSemantic reconciliation
Command MessageA carrier whose contract strongly indicates command intent; ingress remains an exogenous event and command interpretation remains relative to the receiving observer.
Event MessageA carrier reporting an occurrence; the reported domain event and the message-receipt event are distinct occurrences at different boundaries.
Message ChannelAn interaction locus that does not decide the semantic role, authority, or business completion meaning of what it carries.
Process ManagerA routing and coordination pattern that may realize part of a semantic process but does not define its purpose, state authority, recovery policy, or terminal outcomes.
Canonical Data ModelA selected integration representation that does not become canonical domain meaning or one enterprise-wide ubiquitous language.

The realm correspondence framework starts with the DDD meaning and boundary, places that meaning into messages, channels, observers, effects, and process graphs, assigns EIP structures and operational obligations, and only then selects a broker, runtime, store, protocol, or file exchange.

Catalog Coverage

Integration Styles

EIP patternCohesive correspondence
File Transferbatch and file exchange, interaction, and storage systems
Shared Databasestorage systems, shared-state interaction, boundaries, and isolation
Remote Procedure Invocationrequest/reply, network, and application hosts
Messaginginteraction, messages and envelopes, interaction channels, and brokers

Messaging Systems

EIP patternCohesive correspondence
Message Channelinteraction channels and interaction control flow
Messagemessages and envelopes
Pipes and Filtersflow operators, flow views, and interaction control flow
Message Routerrouting models
Message Translatoranti-corruption layer and compatibility and evolution
Message Endpointendpoints, observer models, and ports and adapters

Messaging Channels

EIP patternCohesive correspondence
Point-to-Point Channelinteraction channels and consumer coordination
Publish-Subscribe Channelinteraction channels and brokers
Datatype Channelinteraction channels, shape, and compatibility and evolution
Invalid Message Channelretention, expiration, and quarantine and recovery
Dead Letter Channelretention, expiration, and quarantine and asynchronous interaction design
Guaranteed Deliverydelivery semantics, durability, and acknowledgments
Channel Adapterports and adapters and realization
Messaging Bridgeinteraction channels, brokers, and network
Message Businteraction channels, brokers, and infrastructure graph

Message Construction

EIP patternCohesive correspondence
Command Messagemessages and envelopes carrying explicit command intent as an exogenous event at ingress
Document Messagemessages and envelopes carrying an observation, state transfer, artifact, or other shaped value
Event Messagemessages and envelopes carrying a reported occurrence; receipt is also an exogenous messaging event
Request-Replyrequest/reply, request effects, and correlation and conversations
Return Addresscorrelation and conversations and interaction
Correlation Identifiercorrelation and conversations, identity, and causality
Message Sequencecorrelation and conversations and ordering
Message Expirationretention, expiration, and quarantine and time
Format Indicatorcompatibility and evolution, version, and shape

Message Routing

EIP patternCohesive correspondence
Content-Based Routerrouting models and policy scopes
Message Filterflow operators and policy scopes
Dynamic Routerrouting models, observer models, and routing observations
Recipient Listrouting models and interaction channels
Splitterflow operators
Aggregatorflow operators, correlation and conversations, and consistent cuts
Resequencerflow operators and ordering
Composed Message Processorflow operators, flow views, and compositionality
Scatter-Gatherflow operators, request/reply, and correlation and conversations
Routing Sliprouting models and process graphs
Process Managerprocess managers and process graphs
Message Brokerrouting models and brokers

Message Transformation

EIP patternCohesive correspondence
Envelope Wrappermessages and envelopes
Content Enricherflow operators, observations, and projection models
Content Filterflow operators, shape, and boundary-relative projection or redaction
Claim Checkmessages and envelopes, identity, and storage systems
Normalizeranti-corruption layer and compatibility and evolution
Canonical Data Modelanti-corruption layer, compatibility and evolution, and system language and realization

Messaging Endpoints

EIP patternCohesive correspondence
Messaging Gatewayports and adapters, observer models, and application hosts
Messaging Mapperports and adapters, shape, and realization
Transactional Clientcommit boundaries, ACID, transactional outbox, and transactional inbox
Polling Consumerconsumer coordination, interaction control flow, scheduling, and interaction
Event-Driven Consumerconsumer coordination, interaction control flow, observer models, and runtimes
Competing Consumersconsumer coordination, arbitration, and fairness
Message Dispatcherconsumer coordination and routing models
Selective Consumerconsumer coordination, routing models, and policy scopes
Durable Subscriberconsumer coordination, durability, and retention, expiration, and quarantine
Idempotent Receiveridempotency and transactional inbox
Service Activatorports and adapters, observer models, and application hosts

System Management

EIP patternCohesive correspondence
Control Busoperational control and infrastructure graph
Detouroperational control, routing models, and policy scopes
Wire Tapobservability and provenance
Message Historyobservability and provenance and causality
Message Storeobservability and provenance, persistence, and storage systems
Smart Proxycorrelation and conversations, routing models, and interaction
Test Messageoperational control and observability and provenance
Channel Purgeroperational control and retention, expiration, and quarantine

Boundary of Adoption

Cohesive adopts EIP with three qualifications: guaranteed delivery is not business completion; a canonical integration model is not canonical domain meaning; and a process manager is not the semantic process it coordinates.

Formal relations

  • documents: Messages and Envelopes — Organizes message construction, translation, correlation, and envelope concerns without identifying carried records with semantic events or commands.
  • documents: Interaction Channels — Organizes channel, endpoint, adapter, routing, and mediation patterns for message-based interaction structure.
  • documents: Routing Models — Organizes content-, context-, recipient-, process-, and topology-sensitive routing alternatives and their composition.

External References

Related concepts: pattern languages and correspondence, domain-driven design, architecture practices, interaction, interaction control flow, messages and envelopes, interaction channels, routing models, flow operators, observer models, effect, event, command, process, delivery semantics, realization.