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