Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Independent

The System Design Primer

via Independent

Overview

Build a Learning Habit
Download Class Central's free printable study calendar
Download for Free
Learning how to design scalable systems will help you become a better engineer.System design is a broad topic. There are a vast number of resources scattered throughout the web on system design principles. This repo is an organized collection of resources to help you learn how to build systems at scale. Learn from the open source communit

Syllabus

  • System design topics: start here
    • Step 1: Review the scalability video lecture
    • Step 2: Review the scalability article
    • Next steps
  • Performance vs scalability
  • Latency vs throughput
  • Availability vs consistency
    • CAP theorem
      • CP - consistency and partition tolerance
      • AP - availability and partition tolerance
  • Consistency patterns
    • Weak consistency
    • Eventual consistency
    • Strong consistency
  • Availability patterns
    • Fail-over
    • Replication
    • Availability in numbers
  • Domain name system
  • Content delivery network
    • Push CDNs
    • Pull CDNs
  • Load balancer
    • Active-passive
    • Active-active
    • Layer 4 load balancing
    • Layer 7 load balancing
    • Horizontal scaling
  • Reverse proxy (web server)
    • Load balancer vs reverse proxy
  • Application layer
    • Microservices
    • Service discovery
  • Database
    • Relational database management system (RDBMS)
      • Master-slave replication
      • Master-master replication
      • Federation
      • Sharding
      • Denormalization
      • SQL tuning
    • NoSQL
      • Key-value store
      • Document store
      • Wide column store
      • Graph Database
    • SQL or NoSQL
  • Cache
    • Client caching
    • CDN caching
    • Web server caching
    • Database caching
    • Application caching
    • Caching at the database query level
    • Caching at the object level
    • When to update the cache
      • Cache-aside
      • Write-through
      • Write-behind (write-back)
      • Refresh-ahead
  • Asynchronism
    • Message queues
    • Task queues
    • Back pressure
  • Communication
    • Transmission control protocol (TCP)
    • User datagram protocol (UDP)
    • Remote procedure call (RPC)
    • Representational state transfer (REST)
  • Security
  • Appendix
    • Powers of two table
    • Latency numbers every programmer should know
    • Additional system design interview questions
    • Real world architectures
    • Company architectures
    • Company engineering blogs
  • Under development
  • Credits
  • Contact info
  • License

Taught by

Donne Martin

Reviews

Start your review of The System Design Primer

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.