2024-12-1512 min read

System Design Basics: A Complete Beginner's Guide

IT

InterviewPro Team

Senior Technical Interviewers

System Design Basics: A Complete Beginner's Guide

What is System Design? 🏗️

System Design is the process of designing how different parts of a software application work together.

Think of it like building a house. You need to plan:

  • 🏠 Where the kitchen goes
  • 💧 How water reaches every tap
  • ⚡ How electricity reaches every room
  • 🚪 How many rooms you need
  • 👨‍👩‍👧‍👦 How many people can live in it

In software, System Design is similar. We plan:

  • 👤 How users interact with our app
  • 📊 How data flows between different parts
  • 👥 How many users our app can handle
  • ⚡ What happens when many users use it at the same time

Why Do We Need System Design? 🤔

💡Why Companies Care

❌ Without System Design:

  • 💥 Apps crash when many users visit
  • 📉 Data gets lost or corrupted
  • 🐌 Website becomes very slow
  • 💰 Company loses money and users

✅ With System Design:

  • 🚀 App works smoothly for millions of users
  • 🔒 Data stays safe and organized
  • ⚡ Website loads fast
  • 📈 Company grows and succeeds

Companies like Netflix 🎬, YouTube 📺, and Amazon 🛒 use System Design to handle billions of users every day.

Where is System Design Used? 🌍

System Design is used everywhere:

  • 🌐 Web Applications: Facebook, Instagram, Twitter
  • 📱 Mobile Apps: Uber, WhatsApp, Spotify
  • 🛒 E-commerce: Amazon, eBay, Shopify
  • 🎬 Streaming: Netflix, YouTube, Twitch
  • 🏦 Banking: PayPal, Stripe, Chase Bank
  • 📱 Social Media: LinkedIn, TikTok, Snapchat

Every app you use has a System Design behind it.

Frontend vs Backend ⚡

Frontend 🎨

Frontend is what users see and interact with.

Examples:

  • 🔘 The buttons you click
  • 📝 The forms you fill
  • 🖼️ The images you see
  • 🎨 The colors and design

Technologies:

  • 💻 HTML, CSS, JavaScript
  • ⚛️ React, Vue, Angular
  • 📱 Mobile apps (iOS, Android)

Backend 🔧

Backend is what happens behind the scenes.

Examples:

  • 📦 Processing your order
  • 💾 Saving your data
  • 📧 Sending emails
  • 🔐 Checking if you're logged in

Technologies:

  • 💻 Node.js, Python, Java, Go
  • 🗄️ Databases (MySQL, MongoDB)
  • ☁️ Servers (AWS, Google Cloud)

💡Real-World Analogy

Frontend = The menu and waiter at a restaurant

Backend = The kitchen and chefs cooking the food

You see the menu and waiter (frontend), but the cooking happens in the kitchen (backend).

Client and Server 💻

Client 📱

A client is the device or app that requests information.

Examples:

  • 💻 Your laptop
  • 📱 Your phone
  • 🌐 Your web browser (Chrome, Firefox)
  • 📲 Mobile apps

Server 🖥️

A server is a powerful computer that responds to client requests.

Examples:

  • 🌐 Web servers
  • 🗄️ Database servers
  • 📁 File servers
  • 📧 Email servers

💡How It Works

Imagine you're at a restaurant:

  • 👤 You (Client) look at the menu and order food
  • 🍳 Kitchen (Server) receives your order and cooks the food
  • 🍽️ Kitchen (Server) gives the food back to you

Request and Response 📨

Request 📤

A request is when a client asks for something from a server.

Examples:

  • 👤 "Show me my profile"
  • 📸 "Save this photo"
  • 🔐 "Login with my password"
  • 🔍 "Search for videos"

Response 📥

A response is what the server sends back.

Examples:

  • 👤 "Here is your profile data"
  • ✅ "Photo saved successfully"
  • 🔓 "Login successful"
  • 🎬 "Here are the search results"
sequenceDiagram
    participant Client as Your Phone
    participant Server as Web Server
    
    Client->>Server: Request (Show my profile)
    Server->>Server: Process request
    Server->>Client: Response (Here is your data)

API Basics 🔌

API stands for Application Programming Interface.

An API is like a waiter in a restaurant.

  • 👤 You (client) tell the waiter what you want
  • 🍽️ The waiter takes your order to the kitchen (server)
  • 👨‍🍳 The kitchen prepares the food
  • 🍽️ The waiter brings the food back to you

You don't need to know how the kitchen works. You just talk to the waiter.

💡API in Real Life

🌤️ Weather App Example:

  • 📱 Your weather app asks an API: "What's the weather in New York?"
  • 🌐 The API asks a weather service
  • 🌡️ The weather service sends back the temperature
  • 📤 The API sends the temperature to your app
  • 📊 Your app shows you: "72°F in New York"

HTTP vs HTTPS 🔒

HTTP (HyperText Transfer Protocol) 🌐

HTTP is how computers communicate over the internet.

⚠️ Problem: HTTP is not secure. Anyone can see what you're sending.

HTTPS (HyperText Transfer Protocol Secure) 🔐

HTTPS is the secure version of HTTP.

✅ Solution: HTTPS encrypts your data so no one can read it.

💡Why HTTPS Matters

❌ Without HTTPS:

  • 🕵️ Hackers can steal your password
  • 💳 Hackers can see your credit card number
  • 📧 Hackers can read your messages

✅ With HTTPS:

  • 🔐 Your data is encrypted (coded)
  • 🛡️ Hackers cannot read your data
  • 🔒 Your information stays safe

How to know if a site uses HTTPS:

  • 🔒 Look for the lock icon in your browser
  • 🌐 The URL starts with https:// not http://

DNS (Domain Name System) 📖

DNS is like a phonebook for the internet.

Computers use IP addresses (numbers) to identify each other. Humans use domain names (words) because they're easier to remember.

DNS translates domain names to IP addresses.

💡DNS Example

When you type google.com:

  • 💻 Your computer asks DNS: "What is the IP address of google.com?"
  • 📡 DNS replies: "The IP address is 142.250.185.78"
  • 🔗 Your computer connects to that IP address
  • 🌐 Google loads in your browser

Domain Name 🌐

A domain name is the name of a website.

Examples:

  • 🔍 google.com
  • 👥 facebook.com
  • 🛒 amazon.com
  • 🎬 netflix.com

Domain names are easy for humans to remember.

IP Address 🔢

An IP address is a number that identifies a computer on the internet.

Examples:

  • 192.168.1.1
  • 142.250.185.78
  • 8.8.8.8

IP addresses are what computers actually use to find each other.

💡Real-World Analogy

👤 Domain Name = "John Smith" (easy to remember)

📞 IP Address = "555-123-4567" (phone number)

When you want to call John, you look up his phone number first.

Ports 🚪

Ports are like doors on a server. Different services use different doors.

Common Ports:

  • 🌐 Port 80: HTTP (web traffic)
  • 🔒 Port 443: HTTPS (secure web traffic)
  • 🔑 Port 22: SSH (remote login)
  • 🗄️ Port 3306: MySQL (database)

💡Port Analogy

Think of a server as a building with many doors:

  • 🚪 Door 80: For web visitors
  • 🔒 Door 443: For secure web visitors
  • 🔑 Door 22: For maintenance workers
  • 🗄️ Door 3306: For database access

Each door is used for a different purpose.

Real-World Example: Ordering Food Online 🍕

Let's see how all these concepts work together when you order food online.

Step 1: You Open the App 📱

  1. 📱 Your phone (Client) opens the food delivery app (Frontend)
  2. 🍽️ The app shows you restaurants and menus

Step 2: You Place an Order 🛒

  1. 🍕 You select a pizza and click "Order"
  2. 📤 Your phone sends a Request to the server
  3. 🔒 The request goes over HTTPS (secure)
  4. 📡 DNS helps find the server's IP address
  5. 🚪 The request reaches the server through Port 443

Step 3: Server Processes ⚙️

  1. 🖥️ The Server receives your order
  2. 🔐 The server checks if you're logged in (Authentication)
  3. 💾 The server saves your order to the Database
  4. 🍳 The server sends your order to the restaurant

Step 4: You Get a Response ✅

  1. 📥 The server sends a Response back to your phone
  2. 📱 Your phone shows "Order confirmed!"
  3. 📍 You can track your order in real-time
flowchart LR
    A[You open food app] --> B[Select pizza]
    B --> C[Click Order]
    C --> D[HTTPS Request]
    D --> E[DNS Lookup]
    E --> F[Server receives order]
    F --> G[Check authentication]
    G --> H[Save to database]
    H --> I[Send to restaurant]
    I --> J[Response: Order confirmed]
    J --> K[Show confirmation on phone]

Simple Architecture Diagram 🏗️

Here's how a simple web application works:

👤 User (You)
    ↓
🌐 Web Browser (Chrome, Safari)
    ↓
📡 DNS (Finds server IP)
    ↓
🖥️ Server (Processes request)
    ↓
🗄️ Database (Stores data)

Summary 📚

💡Key Points to Remember

  • 🏗️ System Design = Planning how software parts work together
  • 🎨 Frontend = What users see (buttons, forms, design)
  • ⚙️ Backend = What happens behind the scenes (processing, data)
  • 📱 Client = Device that makes requests (phone, laptop)
  • 🖥️ Server = Computer that responds to requests
  • 📤 Request = Client asking for something
  • 📥 Response = Server sending back data
  • 🔌 API = Way for different software to talk to each other
  • 🌐 HTTP = Insecure web communication
  • 🔒 HTTPS = Secure web communication
  • 📡 DNS = Translates domain names to IP addresses
  • 🌐 Domain Name = Website name (google.com)
  • 🔢 IP Address = Computer's number on the internet
  • 🚪 Ports = Doors for different services on a server

Common Interview Questions 📝

What's Next? 🚀

Now that you understand the basics, the next blog will cover:

  • Web Servers
  • Application Servers
  • Databases
  • Caching
  • Authentication
  • And more backend building blocks!

🏷️ Topics

System DesignInterview PrepBeginnerBasics