Skip to content

System design fundamentals

System design fundamentals: estimation, running a design round, stateless tiers, CDNs, consistency models, overload protection and availability.

8 lessons

Method and numbers

  1. 1Back-of-envelope estimationAn estimate is a decision tool. The window, the peak and the units change the answer; the third digit never does.
  2. 2Running a backend design roundFinish the system's outline, then spend depth on the choices that need evidence.

Scaling the request path

  1. 3Stateless tiers behind a load balancerSeparate the routing unit, the eligible targets and the owner of session state.
  2. 4CDN and edge cachingThe edge hands one copy to everyone whose request builds the same key. Decide what is shared, for how long, and how to retract it.

Distributing data

  1. 5Consistency models, CAP and PACELCChoose consistency per operation: refuse or answer during a partition, and wait or answer fast the rest of the time.

Async work and protection

  1. 6Overload protectionProtect useful completions by deciding what enters expensive service before an overloaded queue decides for you.
  2. 7Scaling WebSockets and real-time fan-outA socket belongs to one pod, so every broadcast crosses a backplane, every reconnect needs a resume point, and every deploy moves thousands of sockets.

Availability

  1. 8Availability math, single points of failure and failoverMultiply what a path needs in series, count copies only when they fail apart, and price every failover in detection, promotion and re-routing.