Skip to content

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.