Unit 5 — Software Architecture¶
Learning objectives¶
- Explain architecture as high-impact structural decisions and constraints.
- Compare layered, client-server, event-driven, microservice, pipe-and-filter, and repository styles.
- Relate architecture to quality attributes and trade-offs.
Architecture is about trade-offs¶
There is no universally best architecture. A structure that improves independent deployment may increase operational complexity. A structure optimized for performance may reduce modifiability. Architecture makes these tensions explicit.
Quality-attribute scenarios¶
A useful architecture discussion states the stimulus and desired response. Example:
During peak registration, when 5,000 concurrent students request course availability, the service should return 95% of responses within the agreed latency threshold without data corruption.
Architectural Decision Records (ADRs)¶
A lightweight ADR records:
- Context and problem.
- Decision drivers.
- Considered options.
- Decision.
- Consequences and known trade-offs.
Tip
Write an ADR when a future developer might reasonably ask: "Why did we choose this?"