Before: one bad input stopped everything. A pair of broken test rows froze staging attribution and purchases for 10 days. Now the bad item is set aside with its last good numbers, Slack names it, and everything else keeps publishing. Only a real outage (ClickHouse down, lease lost, schema missing) still stops the pipeline.
| Gate | Before | After | |
|---|---|---|---|
| Extra queries on a healthy run | 874 | 874 | ✓ 0 added |
| 400× speed (95% within) | 13.62 s | 13.58 s | ✓ same |
| 400× with a bad item every minute | 13.58 s | 13.63 s | ✓ +0.4% |
| One bad item holds… | — | exactly 1 key | ✓ never a page |
| 1,000 items already held | 13.58 s | 13.49 s | ✓ flat |
| Acquisition reconciler | 31.63/s | 31.52/s | ✓ same |