System design guides

The ideas behind the simulator, explained with the formulas you can use in a design review or an interview.

Caching in system design

A practical guide to caching for system design: cache-aside vs read-through, the hit-ratio formula, invalidation, TTLs, eviction and cache stampedes.

Load balancing and capacity planning

How to reason about server capacity with queueing theory: utilisation ρ = λ/cμ, Little’s law, load balancing algorithms, autoscaling and failover.

Message queues vs event streams

Queues vs streams in system design: how SQS, RabbitMQ and Kafka differ, the backlog formula, partitions vs consumers, retention and dead-letter queues.