Skip to the content.

In system design interviews, once you have the basic functional requirements (what the system does), you must also discuss non-functional requirements (NFRs), which describe how the system should behave under different conditions.


πŸ”‘ Common Non-Functional Requirements (NFRs)

Here’s a structured list of NFRs typically discussed in interviews, along with what they drive in the design:


1. Scalability


2. Availability


3. Reliability / Fault Tolerance


4. Performance / Latency


5. Consistency


6. Durability


7. Security


8. Maintainability / Operability


9. Cost Efficiency


βœ… NFRs You Should Always Mention

In almost every interview, you should cover at least these 5:

  1. Scalability – how system grows
  2. Availability – system uptime
  3. Reliability / Fault Tolerance – resilience to failure
  4. Performance (Latency + Throughput) – speed
  5. Consistency – correctness of data

(Security is also critical if system deals with money or personal data.)


βš–οΈ Example Mapping: Hotel Booking System


πŸ‘‰ In interviews, the key is not just listing NFRs, but showing how each NFR influences your design choices.


πŸ“ NFRs β†’ Design Choices Cheat Sheet

1. Scalability (Handle more users / data / traffic)


2. Availability (System uptime, minimal downtime)


3. Reliability / Fault Tolerance (System continues even if parts fail)


4. Performance (Latency + Throughput)


5. Consistency (Correctness of data)


6. Durability (No data loss after commit)


7. Security


8. Maintainability / Operability


9. Cost Efficiency


βœ… Always Mention (baseline NFRs in interview)

  1. Scalability
  2. Availability
  3. Reliability / Fault Tolerance
  4. Performance (Latency/Throughput)
  5. Consistency
  6. (Security if payments / sensitive data involved)

β€œFor this system, the most critical NFRs are scalability (to handle peak traffic), availability (users expect 24/7 service), consistency (to avoid double-booking), and security (since payments are involved). These will drive choices like caching, DB replication, and optimistic locking.”