Real Time Go
summary
Built an in-house Go bidder for second-price RTB auctions with a 100–120ms industry deadline and a measured 75ms abort deadline (network RTT ~15–17ms). Started on memcached (two-minute reload every 30 minutes), moved to MongoDB (latency spikes), then to Redis shards, which cut deadline misses from ~50–125/s down to ~10–15/s. Instrumentation uses Prometheus+Grafana, net/http/pprof and x/net/trace; Go GC (1.5–1.7) yields sub-ms pauses. Production: 20,000 bids/s across nine servers, single-instance max ~6,500 bids/s with ~1 miss/s.
AI-written summary · about
chapters (21)
- 0:00Introduction
- 1:20What is realtime
- 2:21Deadline
- 2:58System Failure
- 3:37Firm
- 4:36Soft
- 5:32RealTime Bidding
- 7:14Travel Audience
- 15:30Solution
- 16:34Data Store
- 20:50Login Library
- 22:40MongoDB vs Redis
- 27:05Prometheus metrics
- 32:00Profiling
- 35:50Garbage collection
- 37:10Practical experience
- 38:05Requirements
- 38:45Stop the World Deadline
- 41:00Garbage Collector Performance
- 43:45Recap
- 44:35Reading list
related talks
31mHow Go is Making us Faster
36mGolang's Realtime GC in Theory and Practice
30mHigh Performance Systems in Go
01h 27mFlash Talks
45mRTB DSP in Go: Taming the Buzzwords
45mRTB DSP in Go: Taming the Buzzwords
31mFrom Polling to Pushing: Going Realtime with Go, gRPC, and Redis
40mBuilding a Highly Concurrent Cache in Go: A Hitchhiker's Guide
