07 — Styles, Views & Tactics¶
Driving question: How can two architectures with similar boxes behave differently under change or failure?
Learning objectives¶
- Differentiate architecture styles, patterns, and tactics.
- Use multiple views to expose different concerns.
- Connect tactics to quality attributes.
- Compare layered, event-driven, microkernel, pipe-and-filter, and service-oriented structures.
Styles constrain composition¶
A style defines a family of systems with characteristic component/connector rules. A tactic is a smaller design decision targeted at a quality attribute.
Examples of tactics:
- cache results to improve latency;
- introduce heartbeat/timeout to detect failure;
- isolate faults using process boundaries;
- authenticate requests at a gateway;
- queue work to absorb load bursts.
Views¶
No single diagram is the architecture. Useful views may include:
- module/dependency view;
- component-and-connector view;
- deployment view;
- runtime sequence view;
- data ownership view.
Design / research exercise¶
Choose one architectural style and identify a quality attribute it tends to help and one it can make harder. Support the answer using concrete mechanisms, not style reputation.
Suggested reading¶
- POSA Volume 1.
- Software Architecture in Practice.