Step 1 · Readiness
Align the comparison window
Paridity reads the context that fits the data flow: CDC tool state and lag, watermark advancement, a batch or load cycle, a snapshot, a partition. The window is pinned before any data is compared, so in-flight replication never reads as a mismatch.
Step 2 · Proof
Fingerprint both datasets
Counts and a deterministic hash total are computed for source and target inside each engine, on canonicalized values, so a Postgres row and a Snowflake row hash to the same bytes. The proof is an order-insensitive pass or fail signal for the whole dataset.
Step 3 · Pass
Keep the evidence
When the proof passes, the run ends. The configuration snapshot, the window, the fingerprints and the timings are recorded, and nothing else is read.
Step 4 · Fail
Isolate keys, then fields
When the proof fails, per-row hashes identify which keys differ. Only those rows are fetched, and only the fields that differ are compared, so a one-row problem in a billion-row table costs one row of egress.
Step 5 · Evidence
Record everything
Config snapshot and checksum, phase start and end times, mismatch keys, field diffs with masking applied, lag retries, terminal status and an audit entry, all append-only and exportable.
Throughout · Drift
Watch the schema
Every proof phase compares the live schema on both sides against the baseline. A lost key column halts the run; a lost reconciled column follows your policy; an added column is recorded and never silently ignored.