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
The problem
How do we communicate with another system if the message originator does not have all the required data items available?
Adapted from Enterprise Integration Patterns under CC BY 3.0. The visualization and explanatory content on this page are original GateSift material.
Original GateSift visualization

How Content Enricher works

Missing reference or contextual data is retrieved from a trusted source and added before the downstream contract is produced.

Incomplete message
Resolve trusted context
Enriched message
1

Identify which required data is absent and which system owns the authoritative value.

2

Call or read the enrichment source with explicit timeout, retry, freshness and failure behavior.

3

Merge only the required context into the message while preserving correlation and avoiding unnecessary sensitive data propagation.

Curated GateSift guidance

When this pattern is a good fit — and when it is not

Use content enrichment when a message lacks data required downstream and that data can be added from a trusted source without transferring business ownership into the integration layer.

Good fit when
  • A downstream contract requires reference or contextual data not supplied by the producer.
  • The enrichment source has a clear availability and freshness contract.
  • The added data is integration context rather than a new business decision.
Be cautious when
  • The enrichment call is optional and its latency would dominate a synchronous request path.
  • The integration would need to recreate complex domain rules to decide what value to add.
  • A stable identifier could be passed downstream and resolved closer to the owning domain instead.
Operational risks
Hidden dependencyHigh impact

An otherwise simple flow inherits the latency and availability of the enrichment source.

Stale reference dataReview

Caching enrichment data without an explicit freshness policy can produce valid-looking but outdated messages.

Partial failureHigh impact

The flow needs an explicit decision for unavailable enrichment: fail, use cached data, default, or continue without it.

Azure implementation review
  • APIM send-request can enrich request-time context, but keep dependency latency and timeout behavior visible.
  • Logic Apps can call reference systems before mapping, with retry and catch behavior isolated around the dependency.
  • Cache stable reference data only when freshness, tenant isolation and invalidation behavior are understood.
GateSift explanation

What this pattern helps you decide

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

Who owns the data being added, and how fresh must it be?
What is the explicit fallback when the enrichment dependency is unavailable?
Does enrichment introduce sensitive data that should not be copied into logs or downstream contracts?
Common Azure implementations

Where you may see it

  • Logic Apps data lookup
  • Azure Function enrichment
  • APIM send-request then set-body
GateSift relevance

How the analyzers can surface it

  • APIM send-request and variables
  • BizTalk orchestration lookups

Pattern detection is contextual. GateSift should present these as architectural signals, not claim a pattern is implemented solely because one policy statement or adapter exists.

GateSift support

Where GateSift can surface this pattern

Detection means the source contains direct structural evidence. Signal means the analyzer sees compatible structure but still needs architectural context.

Source, licence and attribution

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

Back to pattern library