← All system designs

Non-Functional Requirements

Availability, reliability, scalability, maintainability, fault tolerance — the dimensions interviewers grade you on without saying so explicitly. NFRs convert vague hand-waves into numbers.

6 items 4 Foundational 2 Intermediate

Functional requirements are the easy half — "users can post, comment, like". Non-functional requirements are what separates a junior answer from a senior one: how available, how fast, how many users, how durable, how recoverable.

The sharpest interviewers will push specifically on these. If a candidate doesn't volunteer NFR targets, the interviewer is forced to ask — and that's a signal of someone who hasn't internalized scale thinking.

Key concepts

  • Quote nines as a budget: 99.9% = ~9 hours/year downtime; 99.99% = ~52 minutes/year
  • Availability and reliability differ — a system can be available but wrong (returning stale data) or reliable but unavailable (refusing to serve when uncertain)
  • Scalability questions are about *trajectory*: 10x growth, 100x growth, what breaks first
  • Maintainability is the cost of every architectural choice over years, not days
  • Fault tolerance is graceful degradation — read-only mode, cached fallbacks, slower paths

Reference template

// NFR checklist to surface in step 1 of every design
  Availability target?              (3 nines / 4 nines / 5 nines)
  Latency budget?                   (p50, p99 — separate for reads vs writes)
  Throughput?                       (peak QPS, growth rate)
  Durability?                       (data loss tolerance — RPO)
  Recovery time?                    (RTO)
  Consistency requirement?          (read-your-writes / monotonic / eventual is fine)
  Geographic distribution?          (single-region / multi-region active-active / DR-only)

Adapt to your problem; the structure is the load-bearing part.

Common pitfalls

  • Picking a 5-nines target without justifying the engineering cost — most consumer products are fine at 3 nines
  • Conflating latency with throughput — they trade off in opposite directions at saturation
  • Treating durability and availability as the same metric — they're orthogonal (you can have either without the other)
  • Quoting an NFR target with no measurement plan — what does p99 mean if you don't sample requests?

Related topics

Items (6)

  • Availability

    Nines as a budget, redundancy strategies, failover modes, and the cost of each 9.

    Concept Foundational
  • Reliability

    Probability of working under expected conditions; how it differs from availability and where the trade-offs live.

    Concept Foundational
  • Scalability

    Vertical, horizontal, and elasticity. Why naive scaling stalls and which axis to pick first.

    Concept Foundational
  • Maintainability

    The operational burden of every architectural decision: observability, deployability, on-call load.

    Concept Intermediate
  • Fault Tolerance

    Designing for the worst expected failure and degrading gracefully past it.

    Concept Intermediate
  • NFRs in Interviews

    Which non-functional requirements to surface, in what order, and how to convert vague asks into numbers.

    Concept Foundational
Search ESC

Keyboard shortcuts

Shortcuts are disabled while typing in inputs.