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.