Requirements/

Non Functional

Lesson overview

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 |

Loading Non Functional