← Documentation

Watching for Drift with Reconciliation Monitors

Two databases that agreed yesterday are not guaranteed to agree today. A reconciliation monitor re-runs the comparison on an interval and tells you the moment they diverge — useful after a cutover, during a dual-write period, or anywhere a replica is expected to track a primary.

Before you start

  • Two connected data sources with tables in common.
  • A webhook endpoint or alert destination, if you want more than an in-app entry.
  • An honest interval: exact checks on large tables are real work for both databases.

Steps

  1. 1

    Open Reconcile from the sidebar and connect the two data sources you want compared

  2. 2

    Create a monitor: pick source, target, check interval (15 min – 24 h) and depth (sampled or exact)

  3. 3

    Every interval, all common tables are compared — row counts plus type-aware checksums

  4. 4

    The moment a pair drifts apart you get a reconciliation_divergence webhook and an alert entry

  5. 5

    Alerts fire on the transition into divergence only — a persistent mismatch won't re-alert every interval

  6. 6

    Use 'Run now' for an immediate check after a fix

What goes wrong

Sampled and exact answer different questions

Sampled catches broad divergence cheaply and can miss a single changed row. Exact catches everything and costs a full scan. Use sampled on a short interval and exact on a nightly one rather than compromising on both.

Alerts fire on the transition, not the state

A monitor that is still diverged will not alert every interval — that is what stops a known problem burying a new one. Check the monitor's current state, not just your inbox.

Expected differences will alert

A target with extra audit columns or a different retention policy diverges legitimately and forever. Scope the monitor to the tables that are meant to be identical.

Next