- This is the first post of the book "System Design Interview" talking about the first pages at "Chapter 1," so let's start together.

"Scale from zero to millions of users"

  • The best way to make a system support millions of users is to build a system that supports a single user and gradually scale it up.

So the truth heading of this chapter should be "Single Server Setup."

  • To understand this setup, we should understand two things first:
  1. The request flow
  2. Traffic source

The Request Flow:

Image description

  1. Users access websites using "domain names" (that happens by DNS "domain name system").
  2. IP (Internet Protocol) back to the user (browser or mobile app).
  3. After IP is obtained, HTTP (Hypertext Transfer Protocol) requests are sent to the web server.
  4. The web server returns HTML pages or JSON responses for rendering.

We will stop here, and traffic source will be the next post.

Before finishing, let's explain some important abbreviations I used in our post:

  1. DNS: Domain Name System. It's a paid server responsible for transferring the domain name "api.mysite.com" which is easy for users to understand, to the IP address that machine can deal with.

  2. IP: Internet Protocol. Its machine-readable address is used for accessing a specific website.

  3. Rendering: Process of converting HTML pages or JSON to more humanly websites that users can understand.