Skip to main content

The Map of Software Architecture

This site aims to provide a "map" for systematically understanding software architecture. Architecture is not a single concept but a domain where multiple design layers overlap, making it difficult to grasp the big picture. This site organizes them and provides guidelines for understanding their interrelationships.

βœ… Why Architecture is Confusing​

The reason architectural discussions often become confusing is that designs of different dimensions are frequently discussed in the same context. The following are representative layers, each having independent design axes:

These are completely different design layersβ€”"Structure, Deployment, Communication, Data, Operations"β€”and cannot be integrated into a single diagram or concept.

βœ… Categorization Structure of This Site​

The categorization of this site is designed based on historical trends in recent architectural discussions.

Based on this background, this site adopts a structure that: Finely categorizes Structural Styles (Internal Application Structure) and organizes the outer layers as separate categories.

1. Structural Styles (Internal Application Structure)​

In recent discussions, styles centered on the Dependency Rule (Hexagonal / Onion / Clean) have become strongly established and treated as the central topic of internal application structure. Therefore, Structural Styles are categorized more finely than other categories.

Note that implementation techniques like Vertical Slice / Feature-based are positioned as supplementary specific configuration patterns of existing styles.

2. System Topologies (System Configuration & Granularity)​

This area deals with deployment strategies, ranging from Monolith to Microservices, Serverless, and Edge. It is the category with the most significant evolution in recent years.

3. Integration Styles (Communication & Coordination)​

Deals with service-to-service communication methods and integration patterns, such as REST, gRPC, Event-driven, and Service Mesh.

4. Data & Analytics Architecture (Data Structure & Analytics Platform)​

Organizes the evolution of data design, from traditional DWH and Data Lakes to operation separation with CQRS/Event Sourcing and distributed responsibilities with Data Mesh.

5. Cross-cutting & Socio-technical (Operations, Culture, Quality)​

Deals with areas involving not just technical foundations but also organization, operations, and culture, such as DevOps, SRE, Observability, Zero Trust, and Team Topologies.

🧩 Overall Software Architecture Mindmap​

🧩 Relationship Diagram Between Categories (Cross-cutting Edges)​

🧩 Guide to Understanding the Overall Architecture​

Before reading individual categories like internal structure, system configuration, communication methods, and data platforms, supplementary pages are provided to give an overview of the big picture.

● Architecture Principles​

Organizes fundamental concepts common to architecture (Dependency Direction, Boundaries, Coupling & Cohesion, Consistency Models, Sync/Async, etc.).

● Architecture Decision Guide​

A systematic guide on how to select outer structures (Topologies / Integration / Data / Cross-cutting) based on requirements, constraints, and organizational structure.

● Structural Styles Decision Guide​

A guide on how to select internal application structures (Layered / Clean / Hexagonal / MVC / MVVM / Transaction Script, etc.) based on domain complexity, changeability, and team structure.

Reading these as prerequisites for each category helps in appropriately positioning individual styles while overlooking the entire architecture.

Each category is explained from the following perspectives:

  • Problems it attempts to solve
  • Philosophy and structure of the style
  • Suitable application areas