Monolith to Microserv. at 20M+ requests per second: Latency and Scale Challenges
summary
RTB House migrates a bidding monolith into gRPC microservices handling 20M+ RPS, extracts geo, UA and URL parsers into independent services, and measures a 7 ms business-visible latency budget. Client-side DNS-based service discovery replaces 300+ load balancers, a custom batching layer (10-request windows) cuts required service instances ~3x, and swapping G1 for ZGC reduces P99 tail latency while increasing memory. Hedging with throttling and health probes preserves resiliency.
AI-written summary · about
chapters (20)
- 0:00Introduction
- 1:12Migration overview
- 3:00Real-time bidding at scale
- 6:14Monolith challenges
- 8:21Why split the monolith
- 10:48Migration requirements
- 13:40Microservices design
- 15:45Practical challenges
- 16:07Load balancing issues
- 17:33Client-side load balancing
- 20:50gRPC call overhead
- 22:59gRPC streaming switch
- 24:21Batching requests
- 25:48Latency trade-offs
- 27:13Garbage collection impact
- 27:35ZGC for tail latency
- 29:04System resilience
- 30:09Hedging requests
- 33:03Final architecture
- 35:10Q&A
related talks
35mLegacy Monolith to Microservices
48mMicroMonolith
43mSolving Scalability by Converting a Monolith into Microservices
42mQ&A - Monolith to Microservices
51mAvoiding Microservice Megadisasters
21mReal World Migration from HTTP to gRPC in Ruby
22mA Case Study of Enhancing gRPC Micro-Services for Supporting High Throughput, Low Latency Trading
53mHow do we build high‑load microservices
