Non Functional
Non-functional requirements: scalability, reliability, and performance.
Non Functional Requirements
Non-functional requirements describe how well the system must work — performance, reliability, scalability, and constraints.
Another way to say it: Quality attributes System constraints Architectural drivers
🔹 Throughput Definition: Number of requests or operations the system can handle per unit time. Example: 10,000 requests per second (RPS)
🔹 Consistency Definition: Degree to which all users see the same, most recent data. Example: Bank balance shows same value everywhere
🔹 Availability Definition: Percentage of time the system is up and accessible. Example: 99.99% uptime
🔹 Durability Definition: Guarantee that once data is written, it will not be lost even after crashes. Example: Data survives server restart
🔹 Reliability Definition: Ability of the system to operate correctly over time without failures or data loss. Example: Messages are not lost or duplicated
🔹 Latency Definition: Time taken to respond to a single request. Example: API response = 120 ms
🔹 Scalability Definition: Ability of the system to handle increased load by adding resources. Example: Adding more servers to handle more users
🔹 Observability Definition: Ability to understand system health using logs, metrics, and traces. Example: Dashboards showing error rates
🔹 Maintainability Definition: How easy it is to modify, fix, and extend the system. Example: Modular services, clean code
🔹 Security Definition: Protection of system and data from unauthorized access. Example: Encrypted APIs + user authentication
🔹 Cost Definition: Budget constraints on building and operating the system. Example: Limited cloud budget for startup MVP
E-commerce Website Product search results must load in under 300 ms System must support 50,000 concurrent users Website must have 99.99% availability Order data must be durable with no data loss
Chat Application . Message delivery latency must be under 200 ms . System must handle 1 million messages per minute . Messages must be reliable (no message loss) . System must support eventual consistency for read receipts
How Non Functional Requirements connect with System Design
🔹 Fault Tolerance Definition: Ability of a system to continue operating even when some components fail. Fault tolerance = system keeps working despite failures Example: One server crashes, system still serves users
| Non-Functional Requirement | E-commerce Design Choice | | -------------------------- | ---------------------------------- | | Low Latency | Cache product catalog | | High Throughput | Scale search & checkout services | | High Availability | Redundant payment + order services | | Fault Tolerance | Circuit breakers for payment | | Strong Consistency | Strong DB for inventory | | High Durability | Durable order storage | | Security | PCI compliance + encryption | | Cost Optimization | CDN for images | | Observability | Monitor checkout failure rate |