Skip to main content

System Design

NameURLDescription
System Design Primerhttps://github.com/donnemartin/system-design-primerA 200k Stars repo with System Design Notes, not too detailed, but covers a lot of stuff
Cloudflare Learning Centerhttps://www.cloudflare.com/en-ca/learning/Cloudflare is a perfect source to learn system design, they have so many free info in their docs

Topics

  • Cache
  • CDN
  • DNS
  • Load Balancer
  • Reverse Proxy
  • Database
  • Asynchronism
    • Message Queues
    • Task Queues
    • Back Pressure
  • Security
  • Protocols
  • Deployment

How to Approach a System Design Interview Question

  1. Outline use cases, constraints, assumptions
    • Who is client?
    • How many client?
    • How are clients using it?
    • How much data?
    • How many requests per second?
    • Read/Write Ratio
  2. Create the high-level design
    • Sketch the main components and connections
  3. Design core components
  4. Scale the design
    • Load Balancer
    • Horizontal Scaling
    • Caching
    • Database Sharding