π Architecture Decision Guide
Software architecture is not a "trend" but a technology selected according to purpose and constraints. This guide organizes perspectives for judging which style, topology, or integration method to choose.
β Three Axes to Decide Firstβ
The core of architecture selection lies in the following three axes:
1. Changeabilityβ
- Is the frequency of change high?
- Is the scope of change wide?
- Is the complexity of domain rules high?
β If high, Dependency Rule (Clean / Hexagonal / Onion) is a strong candidate.
2. Scalability Requirementsβ
- Will the number of users/traffic increase rapidly?
- Is there a need to scale physically?
β If high, Microservices / Serverless / Edge are candidates.
3. Data Consistencyβ
- Is strong consistency mandatory?
- Can latency be tolerated?
β If eventual consistency is acceptable, Event-driven / CQRS / Event Sourcing are effective.
β Topologies Selection (Monolith / Modular Monolith / Microservices)β
β Case for Monolithβ
- Initial phase
- Small team
- Scope of change is clear
β Case for Modular Monolithβ
- Team size of about 2-5
- Context boundaries are clear
- Considering future migration to Microservices
β Case for Microservicesβ
- Large team scale
- Independent deployment is a strong requirement
- Boundaries are clear and the domain is complex
β Integration Style Selection (REST / gRPC / Event-driven)β
RESTβ
- Public API
- Ease of use prioritized
- General Web systems
gRPCβ
- Inter-service communication (High speed, Type safety)
- Internal API
- High performance requirements
Event-drivenβ
- Want to decouple
- Asynchronous processing is central
- High resilience requirements
β Data Architecture Selectionβ
Data Warehouseβ
- Analytics BI
- Structured data centric
Data Lake / Lakehouseβ
- Semi-structured / Unstructured data
- ML pipelines
CQRSβ
- Bias in read/write load
- Want to optimize the read model
Event Sourcingβ
- Audit / History is mandatory
- Time-series data is central
β Deciding from Cross-cutting Perspectivesβ
DevOps / CI/CDβ
- Want to increase deployment frequency across departments
SRE / SLOβ
- Need to treat availability and reliability as KPIs
Team Topologiesβ
- Architecture changes depending on organizational structure (Conwayβs Law)
π§ Final Selection Flow (Simplified Chart)β
β Summaryβ
Architecture selection is a process of determining structure by calculating backward from "Situation, Requirements, Organization, Constraints".
It is important not to stick to a specific style, but to clarify which structure is chosen to solve which problem.