Module 1: Fundamentals#

Before diving into specific technologies like databases or load balancers, it’s crucial to understand the fundamental principles that guide system design. In this module, we will explore the core concepts that every system architect must know.

Lessons#

  1. What is System Design?
    • Learn about functional and non-functional requirements and the art of trade-offs.
  2. Scalability & Performance
    • Understand the difference between vertical and horizontal scaling, and latency vs. throughput.
  3. Availability & Reliability
    • Explore redundancy, failover strategies, and SLAs.
  4. CAP Theorem & Consistency
    • Dive into the trade-offs between Consistency, Availability, and Partition Tolerance.
  5. User Journeys
    • Learn how to model user flows and validate your architecture with scenarios.