Guaranteeing Cross-System Data Consistency: Reconciliation Jobs and Compensation Mechanisms
Where Inconsistency Comes From
Even with an error-free sync pipeline, drift accumulates silently: platform-side order edits that trigger no events (address changes, price adjustments by support agents), lost messages (exhausted webhook retries, expired MQ messages, consumer downtime), divergent state definitions ("shipped" means different things on each side), and human edits made directly in the ERP that bypass the integration entirely. The conclusion: "sync reported no errors" never equals "data is consistent." Consistency must be verified actively.
Reconciliation Jobs: The Instrument of Consistency
A reconciliation job periodically pulls key-field digests of the same business objects from both systems, compares them record by record, and produces a difference list. Design points: choose dimensions by business criticality (order status/amount/quantity, inventory availability, statement receivables); combine aggregate-level reconciliation (counts/totals as a fast probe) with line-level reconciliation to locate differences; reconcile core data hourly, statements daily, master data weekly; and only reconcile settled data (T-1 and earlier) — in-flight records are naturally inconsistent and only generate noise.
Classify Before You Compensate
Not every difference should be auto-fixed. Sync lag (a change five minutes ago, not yet synced) should be recorded and ignored. Deterministically fixable gaps (a missed order, a stale status) get automatic compensation replayed from the authoritative side. Mapping ambiguities require fixing the configuration and replaying history. Genuine conflicts (both sides edited by humans) go to a manual ticket — never auto-overwrite. Compensation must flow through the same pipeline as normal sync — same mappings, same idempotent writes; a side-channel compensator is a bug factory.
The Authority Principle
Every data domain needs a declared source of truth: order status belongs to the OMS, financial amounts to the ERP, inventory to the WMS. Differences are always resolved by correcting the non-authoritative side from the authoritative one. Roll out in stages: run read-only reconciliation for the first month to calibrate classification, then enable auto-compensation with full audit trails, track the difference rate as a core metric (healthy baseline: under 0.1% and falling), and review the ledger periodically to fix root causes upstream. Qeasy ships reconciliation job templates with per-entity field comparison, authority direction, a difference ledger and one-click compensation replay.