Requirements & Constraints¶
Explicit engineering requirements turn an ambiguous system-design request into constraints that can guide architecture decisions.
Questions to answer¶
Functional requirements¶
What must the system do?
Non-functional requirements¶
What qualities must the system provide?
Examples:
- Availability
- Latency
- Throughput
- Durability
- Security
- Scalability
- Compliance
- Cost constraints
Constraints¶
What limits the solution?
Examples:
- Existing systems
- Budget
- Data residency
- Migration constraints
- Team capabilities
- Technology restrictions
- Regulatory requirements
Architect's habit¶
Before designing components, clarify:
Who uses the system, what do they need, at what scale, with what reliability and latency, under what constraints?
Design scenario¶
Take a vague requirement:
"Design an order platform."
The architecture depends on explicit functional requirements and measurable non-functional requirements.
Architecture questions¶
- Which requirements are mandatory?
- Which requirements are negotiable?
- Which requirements conflict?
- Which requirements drive architecture?
- Which assumptions must be validated?