Back to blog

Non-Functional System Characteristics

When designing systems, we don't just solve for "what it does" (Functional Requirements); we must heavily solve for "how well it does it" (Non-Functional Requirements).

### Key Characteristics

- **Performance:** How fast is the system? (Latency, Throughput) - **Scalability:** Can it handle growth? - **Availability:** Is it up when users need it? - **Reliability:** Does it perform its function without failure? - **Security:** Is user data protected from unauthorized access? - **Maintainability:** How easy is it for developers to update and fix the system over time?

A successful architect balances these tradeoffs. For example, encrypting all data (Security) might slightly reduce Performance. High Availability requires redundancy, which increases cost.

Non-Functional System Characteristics - Image 1
Non-Functional System Characteristics - Image 2