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.
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