MDM Implementation Patterns: Registry vs Consolidation vs Coexistence vs Centralized
How do MDM patterns differ - golden record vs registry vs coexistence - for ERP integration?
TL;DR
Bottom line: Four MDM styles exist — Registry (read-only cross-reference), Consolidation (golden record for analytics), Coexistence (bidirectional sync), and Centralized (hub as sole system of record). Most enterprises start with Consolidation and evolve to Coexistence as governance matures.
Key limit: Consolidation hubs have 4-24h refresh latency and cannot serve real-time operational lookups; Coexistence requires conflict resolution logic before go-live or race conditions corrupt golden records.
Watch out for: Treating MDM as a one-time ETL project instead of an ongoing governance program — Gartner projected 75% of MDM programs fail when governance is absent.
Best for: Multi-ERP landscapes (2+ ERPs from M&A or organic growth) where customer, vendor, product, or chart-of-accounts data is fragmented across systems.
Decision shortcut: Federated org with autonomous BUs? Start with Registry or Consolidation. Centralized org with uniform processes? Go straight to Coexistence or Centralized.
System Profile
This card compares MDM architecture patterns — not specific platform implementations. The patterns are vendor-agnostic, but implementation choices are shaped by which MDM platform you select. SAP MDG is tightly coupled to the SAP ecosystem and acts as a centralized/coexistence hub natively within S/4HANA. Informatica and Reltio are vendor-neutral hubs. Profisee offers the fastest deployment for Microsoft-centric shops. Stibo STEP is strongest for product data (PIM + MDM combined). [src1, src2]
Platform
Vendor
Best-Fit Style
Deployment
Primary API
Natural Strength
SAP MDG
SAP
Centralized / Coexistence
Hybrid
OData, RFC/BAPI
Deep SAP integration, workflow governance
Informatica IDMC
Informatica
Consolidation / Coexistence
Cloud
REST, SIF
Multi-domain, 300+ connectors, CLAIRE AI matching
Reltio CDP
Reltio
Coexistence / Consolidation
Cloud (SaaS only)
REST, GraphQL
Fast deployment (<90 days), real-time graph
Profisee
Profisee
Coexistence / Centralized
Cloud / On-Prem
REST, SDK
Microsoft ecosystem (Azure), FastApp UI
Stibo STEP
Stibo Systems
Centralized / Coexistence
Cloud
REST, IIEP
PIM + MDM combined, product data mastery
API Surfaces & Capabilities
MDM platforms expose APIs for three purposes: data ingestion, golden record retrieval, and match/merge operations. The pattern you choose determines which APIs are critical. [src3]
API Purpose
Registry
Consolidation
Coexistence
Centralized
Inbound ingestion
Batch ETL
Batch ETL/ELT
Real-time REST + Batch
Real-time REST only
Golden record read
Cross-reference lookup
Batch export, BI query
REST/GraphQL real-time
REST/GraphQL real-time
Writeback to sources
None
None
Bidirectional REST/CDC
Publish (one-way out)
Match/merge trigger
Automated on ingest
Automated + steward review
Automated + real-time
Automated + workflow approval
Event notifications
None
None
CDC / webhooks / Kafka
Kafka / event bus
Typical latency
N/A (read-only)
4-24h batch
<1s to <5min
<1s
Rate Limits & Quotas
Platform API Limits
Platform
API Call Limit
Bulk Import Limit
Concurrent Connections
Notes
SAP MDG
SAP BTP rate limits (varies by plan)
IDoc batch: 10K records/packet
Configurable per dialog process
Limits shared with S/4HANA app layer
Informatica IDMC
100 API calls/sec (default)
SIF batch: 50K records/batch
20 concurrent REST sessions
Elastic scaling available
Reltio
500 req/sec per tenant (default)
Bulk load: 100K entities/file
Configurable
GraphQL counts same as REST
Profisee
No published hard limit
REST bulk: 10K records/batch
Azure-tier dependent
Scales with Azure App Service plan
Stibo STEP
IIEP: ~5K records/min
Batch import: configurable
JVM-bound (heap dependent)
On-prem deployments self-managed
Match/Merge Processing Limits
Operation
Typical Throughput
Bottleneck
Mitigation
Initial data load & match
50K-500K records/hour
Match algorithm complexity
Pre-cleanse data, reduce match rule count for initial load
Incremental match (daily)
1K-50K records/hour
Duplicate candidate generation
Use blocking keys to narrow match scope
Manual steward review
50-200 records/day/steward
Human throughput
Automate high-confidence merges (>95%), route only ambiguous cases
Survivorship rule execution
Negligible overhead
N/A
Survivorship runs inline with merge
Authentication
Platform
Auth Method
Token Type
Lifetime
Notes
SAP MDG
SAP BTP OAuth 2.0 / X.509
Bearer token
Configurable (default 12h)
Communication arrangements in BTP cockpit
Informatica IDMC
OAuth 2.0 client credentials
Bearer token
1h (refreshable)
Separate tokens for REST vs SIF
Reltio
OAuth 2.0 client credentials
Bearer token
1h
Tenant-scoped tokens
Profisee
Azure AD / OAuth 2.0
Bearer token
1h (configurable)
Azure AD app registration required
Stibo STEP
Basic auth / OAuth 2.0
Session or bearer
Session-based or 1h
Certificate auth for IIEP
Authentication Gotchas
SAP MDG API access requires a Communication Arrangement in BTP — the OData endpoint is not exposed without explicit configuration. [src7]
Informatica SIF uses a separate auth mechanism from the IDMC REST API — REST API tokens do not work for SIF calls. [src3]
Reltio tokens are tenant-scoped — multi-tenant deployments need separate OAuth clients per tenant. [src4]
Constraints
Registry does NOT write back: It provides a cross-reference index only. Any recommendation to "use registry to improve source system data quality" is incorrect.
Consolidation is not real-time: Typical 4-24h refresh cycles. Cannot serve real-time operational lookups.
Coexistence requires conflict resolution before go-live: Without predefined rules for concurrent updates, race conditions corrupt golden records.
Centralized MDM blocks self-service: All master data creation must go through the hub. Existing direct-create workflows in ERPs must be re-engineered.
SAP MDG is SAP-coupled: Non-SAP data sources require middleware (SAP CPI, MuleSoft, Boomi). SAP MDG cannot natively consume REST APIs from non-SAP systems.
Match key design is irreversible in production: Changing match keys on a hub with millions of records triggers a full rematch, potentially unmerging existing golden records.
Survivorship per-attribute, not per-record: Record-level survivorship discards correct attribute values from non-winning sources. Always define survivorship rules per individual attribute.
Integration Pattern Decision Tree
START — Organization needs cross-ERP master data consistency
├── How many ERP systems?
│ ├── 1 ERP + satellite apps
│ │ ├── Data governance within single ERP? → Use native MDG (SAP MDG, Oracle DRM)
│ │ └── Need 360-degree view for analytics? → CONSOLIDATION (lowest cost)
│ └── 2+ ERPs (multi-vendor or M&A)
│ ├── Organizational structure?
│ │ ├── FEDERATED (autonomous BUs, own ERPs, own processes)
│ │ │ ├── Need cross-BU reporting only? → REGISTRY
│ │ │ ├── Need harmonized analytics? → CONSOLIDATION
│ │ │ └── Need operational data consistency? → COEXISTENCE
│ │ ├── CENTRALIZED (single IT, uniform processes)
│ │ │ ├── Greenfield / ERP consolidation? → CENTRALIZED
│ │ │ └── Brownfield / phased harmonization? → COEXISTENCE
│ │ └── HYBRID (central standards, local execution)
│ │ └── → COEXISTENCE (most common choice)
│ └── Data governance maturity?
│ ├── LOW → Start with CONSOLIDATION, evolve to COEXISTENCE (12-18 months)
│ ├── MEDIUM → COEXISTENCE
│ └── HIGH → CENTRALIZED or COEXISTENCE
├── Data domains?
│ ├── Customer/Account → Highest ROI domain — start here
│ ├── Vendor/Supplier → Second priority — compliance benefits
│ ├── Product/Material → Consider PIM + MDM (Stibo STEP, Informatica PIM)
│ ├── Chart of Accounts → Financial consolidation — often SAP MDG or Oracle DRM
│ └── Employee → HR systems often already centralized
└── Budget and timeline?
├── < $500K, < 6 months → Registry or Consolidation
├── $500K-$2M, 6-12 months → Coexistence (single domain)
└── > $2M, 12-24 months → Centralized or multi-domain Coexistence
Quick Reference
Dimension
Registry
Consolidation
Coexistence
Centralized
Data ownership
Source systems
Source systems (hub read-only)
Shared (hub + sources)
MDM hub exclusively
Golden record location
Virtual (assembled on query)
Hub (batch-created)
Hub (real-time synced)
Hub (sole copy)
Sync pattern
None (read-only index)
One-way: sources to hub
Bidirectional
One-way: hub to sources
Writeback to ERPs
No
No
Yes (real-time/near-RT)
Yes (publish/subscribe)
Typical latency
N/A
4-24 hours
Seconds to minutes
Seconds
Data quality improvement
None (reports dupes only)
Hub only
Both hub and sources
Hub (sources consume clean data)
Implementation complexity
Low
Medium
High
Very high
Implementation cost
$100K-$300K
$200K-$800K
$500K-$2M
$1M-$5M+
Timeline
2-4 months
3-6 months
6-12 months
12-24 months
Governance maturity required
Low
Low-Medium
Medium-High
High
Org structure fit
Federated, decentralized
Any (analytics-first)
Hybrid, maturing
Centralized, single-standard
# ERPs sweet spot
3+ (many sources, read-only)
2-5 (analytics consolidation)
2-4 (operational sync)
1-2 (single authority)
Best for
Reporting, compliance, duplicate ID
BI, data warehouse, analytics
Operational consistency
Greenfield, ERP consolidation
Not suitable for
Operational quality, writeback
Real-time lookups, transactional
Low-governance, budget-constrained
Federated orgs, phased adoption
Step-by-Step Integration Guide
1. Assess current state and define data domains
Map all master data domains (customer, vendor, product, chart of accounts, employee) across every ERP and satellite system. Document who creates each entity, how often, and what the authoritative source is today. [src5, src6]
Domain Assessment Template:
+-----------------+---------------+--------------+-------------+----------------+
| Data Domain | Systems | Record Count | Create Rate | Current Source |
| | | | (per month) | of Truth |
+-----------------+---------------+--------------+-------------+----------------+
| Customer | SF, SAP, NS | 2.3M total | 5K | Salesforce |
| Vendor/Supplier | SAP, Oracle | 180K total | 200 | SAP |
| Product | SAP, PIM, WMS | 500K total | 1K | SAP MM |
| Chart of Acct | SAP, Oracle | 12K total | 50 | SAP FI |
| Employee | Workday, SAP | 45K total | 300 | Workday |
+-----------------+---------------+--------------+-------------+----------------+
Verify: Count total unique entities across systems — if cross-system overlap > 30%, MDM ROI is likely positive.
2. Select MDM pattern using the decision tree
Use the decision tree above. Key factors: org structure (federated vs centralized), number of ERPs, data governance maturity, and budget/timeline. [src1, src2]
Verify: Confirm pattern selection with stakeholders before proceeding to platform selection.
3. Define match rules and survivorship strategy
Design match keys per data domain. Match keys determine which records are candidates for merging. Survivorship rules determine which attribute value wins when merging. [src3]
Survivorship Rules (per attribute):
+---------------+----------------------+-------------------------------+
| Attribute | Survivorship Rule | Rationale |
+---------------+----------------------+-------------------------------+
| Legal Name | Most trusted source | ERP > CRM (ERP has contracts) |
| Email | Most recent | Email addresses change often |
| Phone | Most complete | Pick non-null, longest value |
| Address | Most trusted source | ERP for billing, CRM for ship |
| Tax ID | Most trusted source | ERP (validated at PO creation)|
| Credit Limit | Highest authority | Finance system always wins |
| Industry | Most recent | CRM updated by sales reps |
+---------------+----------------------+-------------------------------+
Verify: Test match rules against a sample of 10K records — false positive rate < 2%, false negative rate < 5%.
4. Configure data flow and sync patterns
Set up integration pipelines based on selected pattern. For coexistence: implement CDC listeners on source ERPs, conflict detection in the hub, and writeback channels. [src3]
# Input: SAP MDG OData endpoint, OAuth token, business partner ID
# Output: Master data record in JSON format
# Step 1: Get OAuth token from SAP BTP
curl -X POST "https://your-btp.authentication.eu10.hana.ondemand.com/oauth/token" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_SECRET"
# Step 2: Read Business Partner master data from MDG
curl -X GET "https://your-s4hana.sap/sap/opu/odata/sap/API_BUSINESS_PARTNER/A_BusinessPartner('1000042')" \
-H "Authorization: Bearer <token>" \
-H "Accept: application/json" \
-H "sap-client: 100"
Data Mapping
Master Data Domain Mapping Across ERPs
Data Domain
SAP S/4HANA
Oracle ERP Cloud
Salesforce
NetSuite
Workday
Customer
Business Partner (BP)
Customer (HZ_PARTIES)
Account
Customer
N/A
Vendor
Business Partner (BP, FLVN01)
Supplier (AP_SUPPLIERS)
N/A
Vendor
Supplier
Product
Material (MARA/MARC)
Item (EGP_SYSTEM_ITEMS)
Product2
Item
N/A
Employee
Personnel (PA) / BP
Worker (PER_ALL_PEOPLE)
Contact (Employee)
Employee
Worker
Chart of Accounts
GL Account (SKA1/SKB1)
GL Account (GL_CODE_COMBINATIONS)
N/A
Account (chart)
Ledger Account
Data Type Gotchas
Name fields: SAP stores names in structured fields (NAME1-NAME4, max 35 chars each); Salesforce uses Name (max 255 chars, single field). MDM merge must concatenate or truncate carefully. [src3]
Currency representation: SAP stores amounts in smallest currency unit (cents); Oracle stores as decimal. MDM survivorship rules must normalize before comparison. [src3]
Date/time zones: SAP stores in user timezone; Salesforce in UTC; NetSuite in company timezone; Oracle in UTC. Cross-system timestamp comparison without timezone normalization leads to incorrect "most recent" survivorship. [src3]
Tax ID format: Varies by country (US: EIN 9 digits, DE: USt-IdNr 11 chars, UK: VAT 9-12 digits). MDM must normalize format before match key generation. [src3]
Add fuzzy matching (Jaro-Winkler, Soundex). Pre-cleanse before matching
Survivorship conflict deadlock
Coexistence, Centralized
Two sources update same attribute simultaneously with equal trust
Add timestamp tiebreaker. Last-write-wins for equal-trust sources
Circular sync loop
Coexistence
Hub writes back, ERP CDC detects change, sends back to hub
Tag changes with origin. Ignore hub-originated changes in CDC listener
Golden record corruption
Coexistence, Centralized
Race condition between hub merge and incoming update
Implement optimistic locking. Use version numbers for conflict detection
Steward queue overflow
All
Too many ambiguous matches routed to manual review
Tighten auto-merge threshold. Add secondary match rules
Failure Points in Production
Initial data load overwhelms match engine: Loading millions of records triggers quadratic match comparison. Fix: Use blocking keys to partition match scope. Load in 50K batches. [src3]
Survivorship produces "Frankenstein records": Different attributes survive from different sources, creating records that never existed in any source. Fix: Add cross-attribute consistency rules (if country from Source A, city/postal must also come from Source A). [src3]
CDC lag causes stale golden records: Source ERP commits change, but CDC event is delayed, causing stale data. Fix: Use streaming CDC (Debezium, Oracle GoldenGate, SAP SLT) instead of polling. Set max lag SLA and alert on breach. [src3]
Match key change triggers mass unmerge: Modifying match rules on production hub splits existing golden records. Fix: Never change match keys without parallel run. Compare results against snapshot before cutover. [src3]
Anti-Patterns
Wrong: Treating MDM as an ETL project
// BAD — "We'll just deduplicate with an ETL job"
1. Extract customer data from 3 ERPs nightly
2. Run SQL DISTINCT on name + address
3. Load "deduplicated" records into data warehouse
4. Declare "MDM done"
Problems:
- No match/merge engine — misses fuzzy duplicates
- No survivorship rules — arbitrary record wins
- No writeback — source ERPs still create duplicates daily
- No governance — data quality degrades immediately
Correct: Implement proper MDM with match engine and governance
// GOOD — proper MDM implementation
1. Define match rules: deterministic (Tax ID) + fuzzy (name similarity > 0.85)
2. Define survivorship: per-attribute rules based on source trust ranking
3. Load into MDM hub with match/merge engine
4. Auto-merge high-confidence, route ambiguous to stewards
5. Publish golden records with stable cross-reference IDs
6. Continuous CDC: source changes -> hub update -> writeback
7. Governance: stewards review exceptions, refine rules quarterly
Wrong: Ignoring data stewardship ("fully automated MDM")
// BAD — "AI will handle all matching, no stewards needed"
1. Deploy MDM with default match rules
2. Set auto-merge threshold to 60% confidence
3. No steward queue, no exception handling
Problems:
- 60% threshold causes mass false merges
- Legal entities merged that should remain separate
- Unmerge requests pile up with no one to process them
Correct: Tiered automation with steward escalation
// GOOD — tiered approach
1. Auto-merge: confidence >= 95% (exact Tax ID match)
2. Auto-merge with notification: 85-94% (steward can review retroactively)
3. Manual steward review: 70-84% (approve/reject within SLA)
4. No match: < 70% (separate records)
5. Weekly spot-check of auto-merged records
6. Quarterly match rule tuning based on false positive/negative rates
Wrong: Boiling the ocean — all domains, all systems, day one
// BAD — "Master all data domains across all 7 ERPs simultaneously"
Scope: Customer + Vendor + Product + Employee + CoA across 7 ERPs
Timeline: 6 months, Budget: $800K
Result: 18 months later, $3M spent, 2 domains partially live,
project sponsor replaced, organizational trust in MDM destroyed
Correct: Start small, prove value, expand
// GOOD — phased domain rollout
Phase 1 (months 1-4): Customer domain, 2 highest-volume ERPs ($300K)
Phase 2 (months 5-8): Add vendor domain, same 2 ERPs
Phase 3 (months 9-14): Expand to remaining ERPs
Phase 4 (months 15-20): Add product domain
Each phase: Measurable ROI before next phase funding approved
Common Pitfalls
"MDM = technology project": Organizations buy a platform expecting it to solve data quality without governance changes. Fix: Allocate 40% of MDM budget to people and process. Technology is only 30-40% of total cost. [src5, src6]
No executive sponsor with operational authority: IT-driven MDM projects lack business buy-in. Fix: Secure VP/Director-level sponsor from an operational business unit — not just IT. [src5]
Mismatched style to org structure: Deploying centralized MDM in a federated organization triggers political resistance. Fix: Use decision tree. Federated orgs must start with consolidation or coexistence — never centralized. [src1, src2]
Match rules designed without business context: IT creates match keys on obvious fields but misses business rules (e.g., same Tax ID but different divisions should NOT merge). Fix: Involve business data owners in match rule design. Test with business users validating merge candidates. [src5]
Ignoring the "Day 2" problem: MDM goes live with clean data, but no process prevents new duplicates in source systems. Fix: Implement duplicate-prevention at source: real-time duplicate check API called before new record creation. [src3]
Over-investing in pre-MDM data quality: Spending 12 months cleansing source data before loading delays value. Fix: Load messy data, let match/merge engine handle dedup. Clean iteratively with steward review. [src6]
Diagnostic Commands
# Check golden record duplicate rate (Informatica MDM REST API)
curl -X GET "$INFORMATICA_BASE/mdm/api/v2/statistics/Customer/duplicates" \
-H "Authorization: Bearer $TOKEN" -H "Accept: application/json"
# Check match queue depth (steward tasks pending)
curl -X GET "$INFORMATICA_BASE/mdm/api/v2/tasks?status=PENDING&type=MERGE_REVIEW" \
-H "Authorization: Bearer $TOKEN"
# SAP MDG: Check change request status
curl -X GET "$SAP_HOST/sap/opu/odata/sap/API_MASTERDATA_GOVERNANCE_SRV/ChangeRequests?\$filter=Status eq '01'" \
-H "Authorization: Bearer $SAP_TOKEN" -H "Accept: application/json"
# Reltio: Check entity resolution statistics
curl -X GET "https://your-tenant.reltio.com/reltio/api/entities/_stats" \
-H "Authorization: Bearer $RELTIO_TOKEN"
# Check CDC replication lag (Debezium / Kafka Connect)
curl -X GET "http://kafka-connect:8083/connectors/erp-cdc/status" | jq '.tasks[0].state'
Version History & Compatibility
Platform
Current Version
Previous
Breaking Changes
Notes
SAP MDG
S/4HANA 2025 (Cloud Edition on BTP)
S/4HANA 2023
Cloud-ready mode as default
Classic mode still supported
Informatica IDMC
2025.2 (cloud-native)
10.5 (on-prem)
SIF API v3 replaces v2
v2 SIF deprecated July 2026
Reltio
2025.1
2024.2
FERN LLM-matching replaces legacy ML
Opt-in for existing tenants
Profisee
2024.1
2023.2
REST API v2 replaces v1
v1 sunset December 2025
Stibo STEP
2024 R2
2024 R1
IIEP v3 deprecates v2 outbound
Migration tool provided
When to Use / When Not to Use
Use When
Don't Use When
Use Instead
2+ ERPs with overlapping customer/vendor/product data
Single ERP, no cross-system data sharing
Native ERP data governance (SAP MDG within S/4HANA)
Duplicate records causing operational errors
Duplicates exist but have no operational impact
Data warehouse deduplication for reporting only
M&A integration requiring data harmonization
One-time data migration off legacy ERP
ETL migration scripts with reconciliation
Regulatory requirement for single customer view (KYC, GDPR)
No regulatory pressure for unified records
Ad-hoc reporting with manual deduplication
Analytics team needs trusted, deduplicated cross-BU data
Each BU operates independently, no cross-BU reporting
Federated queries against individual ERP data warehouses
Cross-System Comparison
Capability
SAP MDG
Informatica IDMC
Reltio
Profisee
Stibo STEP
Primary strength
SAP ecosystem governance
Multi-domain, AI matching
Real-time graph, speed
Azure/Microsoft fit, ease
PIM + MDM combined
Supported styles
Centralized, Coexistence
All four
Consolidation, Coexistence
Coexistence, Centralized
Centralized, Coexistence
Deployment
Hybrid (on-prem + BTP)
Cloud-native (IDMC)
SaaS only
SaaS, PaaS, on-prem
Cloud, on-prem
Match engine
Built-in (deterministic + fuzzy)
CLAIRE AI + configurable
FERN LLM + ML
ML-assisted + rules
Rules-based + ML
Survivorship
Attribute-level, workflow-driven
Attribute-level, trust-based
Attribute-level, source-ranked
Attribute-level, rules-based
Attribute-level, rules-based
Non-SAP ERP support
Requires middleware
Native connectors (300+)
REST API integration
REST API + Azure connectors
REST API + IIEP
Implementation time
12-24 months
6-12 months
2-3 months
3-6 months
6-12 months
Typical cost (1st domain)
$1M-$3M
$500K-$1.5M
$300K-$800K
$200K-$600K
$500K-$1.5M
AI/ML capabilities
Generative AI (2025)
CLAIRE AI matching
FERN LLM matching
ML-assisted matching
ML matching (emerging)
Data domains
All (MDG-F, C, S, M)
All (multi-domain native)
Customer, vendor, product
All
Product-centric, expanding
Gartner position
Leader
Leader
Visionary to Leader
Niche to Challenger
Leader (PIM/MDM)
Important Caveats
MDM platform pricing varies dramatically by edition, domain count, and record volume — cost ranges in this card are rough estimates. Always request vendor-specific pricing.
Gartner projected that 75% of MDM programs fail to meet business objectives — the primary cause is lack of governance, not technology failure. Budget for people and process, not just software.
SAP MDG Cloud Edition on BTP is relatively new (2025) and has feature parity gaps with the on-premise version. Verify capabilities against current SAP MDG feature scope document.
Reltio's SaaS-only deployment model means no on-premise option. Organizations with strict data residency requirements should verify regional availability.
The "right" MDM style often evolves — most enterprises start with Consolidation and migrate to Coexistence within 12-24 months. Plan for style evolution in your architecture.
Match quality depends more on data preparation than platform choice. A $200K Profisee deployment with well-designed match keys will outperform a $2M Informatica deployment with poor match keys.