Category

System Design

System design is the discipline of planning how the parts of a software system fit together to meet requirements for scale, latency, availability and cost. It deals with load balancing, caching, databases and partitioning, messaging, networking and observability, and with the trade-offs between consistency and availability. Engineers use it to build services that cope with growth and failure, and it is a standard part of senior engineering interviews.

112 articles