Part 1

Foundations & Abstractions

Build strong foundations with key abstractions and models

Abstractions & Why They Matter

Understanding system abstractions and their importance in design

Key Topics:

  • Layered thinking (networking, APIs, storage)
  • Encapsulation in system design

Non‑Functional Requirements

Scalability, reliability, availability, and performance requirements

Key Topics:

  • Availability, reliability, scalability
  • Maintainability, fault tolerance

Failure & Consistency Models

Understanding different failure modes and consistency guarantees

Key Topics:

  • Crash vs Byzantine failures
  • Strong, causal, read‑your‑own‑writes, eventual consistency