From NGINX to Tokio: Lessons from rewriting a 55 million RPS system
summary
Rewriting a 55 million RPS system moves beyond language to architecture: replacing a NGINX shared‑nothing setup with a Tokio work‑stealing runtime and building FL2 and Pingora in Rust yields concrete wins — a 66% drop in origin connections, roughly 4× lower memory for FL2 vs Engine X FL, massively reduced tail latency, and saved handshake time measured in hundreds of aggregated years per day, demonstrating that work‑stealing plus shared connection pools actually works.
AI-written summary · about
chapters (9)
- 0:00Introduction
- 1:38Legacy proxy stack
- 4:31Rewriting in Rust and Tokio
- 6:14Nginx shared-nothing
- 8:00Shared-nothing at scale
- 15:04Work stealing solution
- 18:19Tokio performance gains
- 20:46Key takeaways
- 23:17Q&A
related talks
56mThe RUST Language for High‑Load Network Services — Quick Start
34mWhoops! I Rewrote it in Rust
16mEmpowering Fearless Data Engineering
27mWhoops! I Rewrote It in Rust
46mAdopting Rust by gracefully oxidising web applications
25mWTF, Rust for Web Development??
06mZero-copy Transfers with io_uring and Rust
34mBe Fearless Using Rust in Production
