The medallion migration engine

The Bronze-Silver-Gold medallion engine for Epicor Kinetic to D365 data migration — extraction from Epicor via REST, DMT and BAQ, the canonical lookup model, key management and cross-reference tables, idempotent reruns, the reconciliation harness, data-quality gates, and the load path into D365 via DMF.

What you will be able to do

Introduction

The previous chapter set the programme's shape: mode, waves, team and gates. This chapter goes one layer down — into the engine that actually moves data from Epicor to D365.

Extraction from Epicor — the Bronze layer

Bronze is the raw landing zone: verbatim Epicor data, landed immutably, partitioned by source system, table, load date and run ID. A Bronze partition is never overwritten — re-extracting the same data creates a new partition alongside the previous one, making replay, forensic audit and "what did the source look like on extraction day"…

The canonical lookup model — Silver layer

Silver is the conformed, typed, de-duplicated layer. Raw Epicor data is resolved against the canonical lookup model — a governed registry of every concept that needs translation from Epicor to D365.

Key management and cross-reference tables

Epicor uses natural keys (PartNum, CustNum, OrderNum, JobNum). D365 uses a combination of natural keys (number sequences) and surrogate keys (RecId). The engine maintains cross-reference tables that map every Epicor natural key to its D365 equivalent:

The Gold layer — D365-entity-shaped output

Gold is the final transformation: Silver canonical output shaped to the exact contracts of D365 DMF data entities. Each Gold output file matches a specific data entity's field set, data types, enumerations and foreign-key references. The Gold layer is where:

The load path — DMF orchestration

Within a wave, entities must load in referential-dependency order. A simplified sequencing for Wave 2 (master data):

The reconciliation harness

Reconciliation is built into the engine at every tier boundary, not bolted on after the load completes. Each transform emits reconciliation metadata; the harness compares:

Operational hardening

The engine is hardened along six axes, each a design target proven in dress rehearsals:

How many dress rehearsals are enough

Three full dress rehearsals at production volume is the minimum. Each serves a distinct purpose:

Knowledge check

Summary

The medallion engine moves Epicor data through three governed tiers — Bronze (raw, immutable), Silver (canonical, conformed), Gold (D365-entity-shaped) — into D365 via DMF, with reconciliation built into every tier boundary. The canonical lookup model prevents mapping inconsistency. Cross-reference tables maintain key traceability.