System Design Crash Course

Core Concepts
Vertical vs Horizontal Scaling
  • Vertical Scaling: Adding more CPU, Memory, Network bandwidth, etc.
  • Horizontal Scaling: Add more hosts or nodes
CAP Theorem
  • C (Consistency) A (Availability) P (Partition Tolerance)
  • Consistency - When you read, you have the most recent write
  • Availability - Your system remains available through failures
  • Partition Tolerance - You system can survive a network partition