.NET Architecture & System Design Interview Question #4

What are functional and non-functional requirements?

Architecture Fundamentals, Scalability, Availability & Performance Junior Beginner

Quick Interview Answer

Functional requirements describe what the system must do, such as creating orders, authenticating users, processing payments, or generating reports.

Detailed Explanation

Functional requirements describe what the system must do, such as creating orders, authenticating users, processing payments, or generating reports.

Non-functional requirements describe qualities and constraints such as performance, availability, scalability, security, maintainability, recoverability, and compliance. These requirements strongly influence architectural choices and should be made measurable where possible.

Code Example

Functional:
- Place an order
- Search products

Non-functional:
- p95 response < 300 ms
- 99.9% availability
- recover within 30 minutes