- 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:
- The request flow
- Traffic source
The Request Flow:
- Users access websites using "domain names" (that happens by DNS "domain name system").
- IP (Internet Protocol) back to the user (browser or mobile app).
- After IP is obtained, HTTP (Hypertext Transfer Protocol) requests are sent to the web server.
- 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:
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.
IP: Internet Protocol. Its machine-readable address is used for accessing a specific website.
Rendering: Process of converting HTML pages or JSON to more humanly websites that users can understand.