Jc-alt logo
jc

System Design Intro

System Design Intro
1 min read
system design

System Design Intro

When studying system design for the first time, the concepts you'll need to learn may seem fairly random and all of over the place

  • SQL vs NoSQL
  • Different caching strategies
  • Horizontal vs vertical partitioning
  • etc.

And while it may seem very random at the start, eventually you'll have a surface level understanding of common system design interview concepts.

The goal is to eventually be able to say during an interview:

  • "How I've solved this problem in the past"
  • "When I previously had to choose between..."
  • "I've built a system to address a similar problem and this is how we solved it"

Concept Overview

  1. Foundations: Single Server
  • CPU
  • RAM
  • DISK
  • Network basics
  • Client Service Model
  • DNS
  • HTTP/HTTPS
  • REST basics
  • LAtency vs Throughput
  • Back of envelope estimation
  1. Scaling a Single Service
  • Vertical vs Horizontal scaling
  • Load balancing (round robin, least connections, consistent hashing)
  • Stateless vs Stateful Services