Skip to content
BoKSA

Architecture and Design Patterns

Architecture and Design Patterns

Architecture styles — layered, hexagonal (ports-and-adapters), event-driven, CQRS with an outbox pattern — and design patterns (creational, structural, behavioural — Factory, Builder, Adapter, Facade, Observer, Strategy) solve recurring design problems. The real skill isn't memorising the pattern catalogue, it's judgment: recognising when a pattern actually improves coupling and testability, and when it's over-engineering a problem that didn't need it.

Starting Points

Key Points

  • You select an appropriate architecture style for a given context and justify the choice in a clear ADR.
  • You design and implement an end-to-end solution following a chosen architecture style, with consistent layering and separation of concerns.
  • You apply suitable design patterns to improve clarity, testability, and maintainability, rather than to add unnecessary complexity.
  • You refactor a tightly coupled codebase toward clearer architecture and patterns, and explain the impact on coupling, cohesion, and testability.
  • You identify and critique over-engineered solutions and propose simpler, justified alternatives.
  • You communicate architectural decisions and pattern choices to both technical and non-technical stakeholders, including trade-offs and risks.