Architectural Patterns
This article is a concept explanation of architectural patterns – including exam questions, examples, and tags.
In a Nutshell
Architectural patterns are reusable solution structures at the system level. They describe context, forces, solution, and consequences – with a focus on quality goals such as maintainability, scalability, security, and testability.
Concise Technical Description
An architectural pattern defines rough system structure (e.g., layers, ports & adapters, microservices, event flows) and influences quality attributes.
Important trade-offs:
- Consistency vs. availability
- Synchronous RPC chains vs. asynchronous messaging
- Central database vs. data per service
Modern systems combine patterns (e.g., DDD boundaries + hexagonal per service). Exam-relevant topics are definition, consequences, deployment scenarios, and risks (e.g., distributed monolith).
Exam-Relevant Key Points
- Differences and consequences of monolith/microservices
- Layered architecture + dependency inversion
- Ports & adapters (hexagonal)
- IHK: Name quality goals + metrics (MTTR, latency)
- Security: zero trust, secrets, service-to-service auth
- Economics: operational/license costs, team boundaries
- Documentation: C4 (L1–L3) + ADRs
Core Components
- Context/assumptions
- Problem + forces
- Structure/building blocks
- Communication style (sync/async)
- Data strategy
- Interfaces/protocols
- Build/test/deploy/observability
- Architecture elements (layers, adapters)
- Security (AuthN/AuthZ, isolation)
- Tests (contract/chaos)
Practical Example (hexagonal, heavily simplified)
Domain: Order.confirm() generates domain event
Application service orchestrates use case
Ports define contracts (repo, bus)
Adapters couple REST, SQL, Kafka
Advantages and Disadvantages
Advantages
- Better changeability
- Testability
- Targeted quality attributes
Disadvantages
- More complexity
- Infrastructure/observability required
- Risk of distributed monolith
Typical Exam Questions (with Brief Answer)
- When is layered architecture sensible? With clear responsibilities; dependencies pointing inward.
- Microservices vs. monolith: core difference? Deployment/data storage/transactions.
- What does hexagonal architecture provide? Separates core logic from inputs/outputs via ports/adapters.
Free Response
Learn patterns via problem, forces, solution, and consequences. Document architectural decisions as ADRs and visualize with C4.
Learning Strategy
- Sketch C4 for a system.
- Mark sync/async paths per use case.
- Practice short definitions + trade-offs.
- Name risks and countermeasures.