{"page":"/blog/rtb-bidder-architecture","modified":"2026-11-10","license":"https://creativecommons.org/licenses/by/4.0/","columns":["Failure","What you see","Mitigation"],"rows":[["Profile store slow or partitioned","p99 jumps; timeouts rise; exchange throttles you","Hard read timeout; bid without profile or return 204; per-store circuit breaker"],["Model server slow after a deploy","Bid prices drift or time out","Fallback rule price; canary new models on a small traffic share"],["Campaign index stale","Bids on paused campaigns or blocked sellers","Version every snapshot; refuse to bid if the snapshot is older than a set age"],["Budget allowance overshoot","Spend above the daily cap","Small allowance slices; hard stop at ledger level; reconcile against billing notices"],["Event stream backlog","Reports and frequency counts lag","Local buffer with back-pressure; alert on consumer lag; never block the bid path"],["Duplicate requests for one impression","Bidding against yourself; inflated QPS","Deduplicate on source.tid and impression ID within a short window"],["Whole cloud region down","Traffic from that trading location lost","Multi-region deployment; health-checked DNS; replicated profile store"]],"sourceUrls":[[],[],[],[],[],[],[]]}