Stop re-snapshotting your entire production database when Kafka drops a batch. StreamRepair identifies silent data drift, pins expected row preimages, and executes operator-reviewed idempotent repairs with zero risk of overwriting newer data.
Simulate a silent CDC divergence: run keyset comparison, inspect root causes, compile a verifiable plan, and execute a preimage-fenced repair.
Why Naive UPSERTs Corrupt Production
If your repair script runs while live CDC traffic catches up, an unconditional overwrite destroys newer valid mutations. StreamRepair implements mathematical Preimage Fencing.
At 02:01 AM, operator detects target has status "PENDING" while source has "PAID". Operator runs a blindly generated SQL UPDATE. But at 02:02 AM, customer cancels order and CDC was in transit. The script overwrites "CANCELLED" with stale "PAID".
Every repair operation attaches the cryptographic hash of the expected target row. If target value changed in the millisecond before execution, StreamRepair fences the row and aborts the batch before mutation occurs.
No locking entire tables. No exhausting database IOPS or replication slots with multi-terabyte global re-snapshots. Keyset pagination operates in bounded batches of 500 records.
Predictable Economics for Data Platforms
Customer-operated runners mean zero raw customer records are ever sent to our control plane.
Self-hosted CLI for manual keyset divergence investigation.
Scheduled divergence monitoring & operator-approved repair plans.
For high-throughput CDC pipelines across multiple regions.
StreamRepair uses a configurable maintenance grace window (default 30 minutes). When a discrepancy is detected, the pipeline marks it as 'pending_lag'. Only after the lag window has elapsed and the source row timestamp has committed past the target LSN does it get promoted to an actionable discrepancy.
StreamRepair strictly classifies unexpected rows as 'UNEXPECTED_IN_TARGET'. Because CDC sinks often receive writes from multiple microservices, StreamRepair quarantines these records as report-only and never deletes them automatically without manual operator signoff.
No. StreamRepair requires standard SELECT privileges on the source tables and SELECT/INSERT/UPDATE privileges on target tables. It does not manipulate WAL logs or require REPLICATION privileges.