Context
Design principles for scalable systems
Here fundamental knowledge is linked to architectural decisions.
Fundamental knowledge is the basic laws of hardware, networks and operating systems that directly affect the architecture. Without them, it is difficult to estimate latency, throughput, fault tolerance and cost of solutions. This part is the supporting layer that makes System Design less abstract and more engineering.
Why is fundamental knowledge needed?
Real Limits
Network, disk, and memory times set the speed ceiling. The architecture must take these limits into account.
Diagnosis of problems
Knowledge of the OS and networks helps to quickly find bottlenecks and understand the causes of degradation.
Correct trade-offs
You can’t choose “the best” without understanding where the performance boundaries physically lie.
Conversation in one language
The foundation is the language of engineers: TCP, caches, contexts, IO, queues.
What's included in this section
Networks and protocols
OSI, TCP/UDP, HTTP, DNS, RPC - how data travels between services.
Iron and resources
CPU vs GPU, memory, disks and their latencies are the basis for evaluating throughput.
OS and infrastructure
OS, Linux, virtualization, containers are the basic building blocks of backend infrastructure.
How to use this section
Treat this part as a reference and base for subsequent chapters. Come back here when questions arise about latency, consistency, throughput, network protocols or infrastructure.
