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.
Reconcile Streaming Data in Seconds
StreamRepair operates on your own infrastructure. Raw database rows and messages never leave your private VPC.
Generates streamrepair.config.json, configures keyset chunk pagination, and binds target preimage validation rules.
name: Continuous CDC Divergence Monitor
on:
schedule:
- cron: '*/30 * * * *' # Every 30 minutes
jobs:
drift-check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Reconcile Pipeline & Check Preimages
uses: subash-thiruppathi/StreamRepair@v1
with:
config: ./streamrepair.config.json
pipeline-id: production-orders-cdc
slack-webhook: ${{ secrets.SLACK_WEBHOOK }}
Runs automated boundary diffing every 30 minutes. If silent data drift occurs, alerts Slack with root causes and compiles a verifiable repair plan.
[](https://streamrepair.spekra.in)
Embed live data integrity badges on your internal architecture docs, README, or status page proving 0 missing rows across streaming sinks.
Scans your codebase for Kafka, Debezium, Redis, and webhook handlers without bounded reconciliation guards. Outputs a 0-100 Drift Readiness Score.
Simulate a silent CDC divergence: run keyset comparison, inspect root causes, compile a verifiable plan, and execute a preimage-fenced repair.
Embed Real-Time Parity Proofs
Prove data integrity to internal stakeholders, auditors, and customers with dynamically generated vector badges.
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.
Stream Reconciliation for Every Scale
Customer-operated runners mean zero raw customer records are ever sent to our control plane.
Self-hosted CLI for manual keyset divergence investigation.
Continuous drift monitoring for lean engineering teams.
Automated scheduled repairs and compliance evidence bundles.
High-throughput streaming across multi-region clusters.
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.