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

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 Endpointobserver models and ports and adapters

Messaging Channels

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

System Management

Boundary of Adoption

Cohesive encompasses these patterns by making their semantic inputs, structural arrangements, operational guarantees, and realization choices explicit. It does not preserve assumptions that no longer hold. In particular, 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.

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.