Part 1.
This part of the book discusses common topics in system design interviews. It sets the stage for part 2, where we discuss sample system design interview questions.
We begin in chapter 1 by walking through a sample system and introducing many system design concepts along the way without explaining them in detail, then deep dive into these concepts in subsequent chapters.
In chapter 2, we discuss one’s experience in a typical system design interview. We’ll learn to clarify the requirements of the question and what aspects of the system to optimize at the expense of others. Then we discuss other common topics, including storing and searching data, operational concerns like monitoring and alerting, and edge cases and new constraints.
In chapter 3, we dive into non-functional requirements, which are usually not explicitly requested by the customer or interviewer and must be clarified prior to designing a system.
A large system may serve hundreds of millions of users and receive billions of data read and write requests every day. We discuss in chapter 4 how we can scale our databases to handle such traffic.
The system may be divided into services, and we may need to write related data to these multiple services, which we discuss in chapter 5.
Many systems require certain common functionalities. In chapter 6, we discuss how we can centralize such cross-cutting functionalities into services that can serve many other systems.