advanced
Non-functional requirements
Define latency, availability, consistency, durability, privacy, and operability targets as design drivers.
Non-functional requirements (NFRs) set targets for latency, availability, consistency, durability, privacy, security, and operability. They turn architecture from generic boxes into measurable trade-offs: "p99 read under 200 ms" drives caching; "99.99% availability" drives redundancy.
Quantify when possible and tie each NFR to user impact. A feed can tolerate eventual consistency; a ledger cannot. State which NFR is the primary optimization target for this design session.
On interviews: propose numeric targets with justification, explain which NFR you would relax under pressure, and connect NFRs to components you will add later.
Common pitfalls: saying "high availability" without a number; ignoring data retention or privacy; optimizing latency before defining load.
Checklist:
- Set latency, availability, and consistency targets.
- Link each NFR to user-visible impact.
- Identify the primary optimization goal.
- Note privacy, security, and retention needs.