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
The problem
How can you minimize dependencies when integrating applications that use different data formats?
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 Canonical Data Model works

The message representation changes while its business meaning is preserved or enhanced.

Source format
Canonical Data Model
Target format
1

Receive a message in the producer's structure or envelope.

2

Apply Canonical Data Model to reshape, enrich, wrap or normalize the content.

3

Deliver a representation that the receiving system can understand.

GateSift explanation

What this pattern helps you decide

Define a shared integration model and translate each application format to and from it, reducing the number of direct pairwise transformations.

What happens when processing fails or the same message is delivered twice?
Where does state, correlation or routing configuration live?
How will operators trace the message and understand the decision path?
Common Azure implementations

Where you may see it

  • Canonical JSON event contracts
  • Enterprise schema registry
  • BizTalk canonical schemas
GateSift relevance

How the analyzers can surface it

  • Shared schemas and transforms
  • Cross-application contract dependencies

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.

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