Related topics
- Computer Networks — See the CS theory behind system building blocks.
- Data Structures — See the data structure theory behind system components.
- Principal Engineer — See how system design fits in Principal Engineer strategy.
- System Design Interviews — See how system design is tested in interviews.
- Estimation & Approximation — See estimation as a thinking skill.
- Networking & DNS — See networking fundamentals from the DevOps perspective.
- Foundations — See system design fundamentals from a web perspective.
Fundamentals
System design fundamentals are the core building blocks that every distributed system is built upon. Before diving into advanced topics like scalability patterns or fault tolerance strategies, you need a solid understanding of what components exist, how they interact, and why certain architectural decisions are made. This foundation shapes every design decision you will encounter.
This topic introduces the essential primitives: how requests are distributed across servers, how data is persisted and retrieved, and how machines communicate over a network. Whether you are designing a simple web application or a globally distributed platform, these concepts appear in every architecture. Mastering them gives you the vocabulary and mental models needed to reason about more complex systems.
Understanding fundamentals also helps you evaluate trade-offs. Every system design decision involves balancing latency, throughput, consistency, and cost. Without a clear grasp of the underlying mechanics, it is impossible to make informed choices about which trade-offs are acceptable for a given use case.
What You'll Learn
- Building Blocks Overview - A survey of the core components (servers, proxies, caches, queues, databases) that form the backbone of any system architecture
- Load Balancing - How incoming traffic is distributed across multiple servers to improve availability and responsiveness
- Databases & Storage - The role of persistent storage in system design, including how different storage engines and access patterns affect performance
- Networking Fundamentals - How machines communicate over a network, covering protocols (TCP, UDP, HTTP), DNS resolution, and latency considerations
Prerequisites
None. This is the starting point for the system design curriculum. A general familiarity with programming and basic computer science concepts (clients, servers, HTTP requests) is helpful but not strictly required.