
The bottleneck didn’t go away. It moved.
I moved the ticket counter from Postgres into Redis. The hot row was gone, but one Node process became the new limit, until more workers took it from 1,000 to 6,000 requests a second.
Notes from building backend systems that hold up under load. I build things, break them with load tests, and write down what the numbers and traces actually showed. Currently: FlashSale, a flash sale backend built from scratch with Postgres, Redis, Kafka and Envoy.