~learn.
0:00 / 1:26
W10 · Production readiness

100 milliseconds to sell an ad. Where every one of them goes.

transcript

A webpage loads. You have 100 milliseconds to sell its ad slot. Miss it, and the exchange moves on without you.

Receive the request, parse it, validate it: 7 milliseconds. Ask the bidders and collect answers: 75. Most of the budget. Run the auction and send the response: 13. 5 left over, as a buffer. Every millisecond has a job.

5 to 10 bidders get the request in parallel. Some answer in 20 milliseconds. Some in 80. So there's a hard 70 millisecond deadline. A late bid wins nothing.

One bidder goes rogue. 500 milliseconds. Auctions still close at 70, without it. After 5 timeouts in a row, its breaker opens. It's skipped. 30 seconds later, half-open. A few trial requests go through. 3 successes, and it closes again. No operator needed.

Super Bowl. 5 times the traffic. Pre-scale every region to 3 times, 24 hours before. During it, ask the top 5 bidders, not 10. And tighten the timeout, 70 down to 50. The exchange's 100 never moves.

Build the latency budget first. Every design choice has to fit inside it. Under load, you don't loosen it. You tighten, shed, and pre-scale.

Full breakdown in the lecture.