Skip to main content

Template

Initial Problem Statement​

Example​

Constraints​

Initial Thoughts, Questions​

Implementation​

Systems Design​

High Level requirements​

API Surface​

Clarifying Questions​

Questions around implementations, strict vs approximate, and anything that would kill any choices made in future

System Constraints​

Summarize system constraints in your own words

  • QPS
  • latency SLO
  • consistency requirements
  • failure tolerance

Identify Core Challenges​

What makes this problem hard in distributed manner (MOST IMPORTANT PART)

  • Distributed correctness (no double allow)
  • Routing / management
  • Data structure
  • Scale + latency
  • Failure behavior
  • single-writer vs linearizable store
  • availability vs consistency
  • data plane vs control plane

Starter Architecture​

Distributed compatible, but high level components and algorithms, focus on partitioning and scaling, not frontend or anything. Some data structure information is OK, specifically ones that relate to the core problem.

Components + Flow + network, partition, and some data structures

Real Architecture​

Now you make in depth choices on literally everything, and draw the entire thing out

Component Deep Dive​

Usually one or two, picked by interviewer or you know to dive into them

Potentially pseucode or pseudo architecture