How to Draw a "Universal" Architecture Diagram: Three Core Principles of Architectural Thinking

Technical Solution Communication Methodology

Table of Contents

---

> “A picture is worth a thousand words.”

In daily work, expressing design ideas often involves diagrams. Yet, differences in knowledge, thinking styles, and architectural priorities (e.g., high-concurrency systems, complex B-end systems, big data, streaming, machine learning, client-side) lead to highly varied diagrams.

Without a standardized, universal technical solution communication language, communication can be ambiguous, slowing personal growth and preventing a systematic way of thinking.

This guide condenses years of architectural practice and industry software engineering methodologies into a universally applicable visual communication framework for technical solutions.

---

1. Introduction

Different system types have different complexity emphases. Diagrams should focus on the most relevant complexity for that system type.

This methodology balances effort vs. benefit and draws on:

  • Software 4+1 Views
  • Domain-Driven Design (DDD)
  • Microservice decomposition
  • UML
  • ER diagrams

System Focus Areas

| System Type | Key Focus Areas |

|-------------|----------------|

| High-traffic consumer systems | System architecture, high concurrency, high availability |

| Complex business-oriented systems (B-end) | Domain modeling, data modeling, microservice decomposition |

| Big data-based business systems | Mass data management, storage/transformation, data consistency |

| Data analysis / algorithmic systems | Data-driven thinking, model & algorithm structure |

Applicability:

This methodology best fits types 1 and 2. Types 3 and 4 mostly benefit from macro-level diagramming.

---

2. Macro Level

Macro-level diagrams set the context and high-level structure.

2.1 Context Diagram

Purpose:

  • Show the business and system context.
  • Frame your system as a black box and describe:
  • Who does your system serve? (users, roles, or other systems)
  • Who does your system depend on?

Reference:

C4 Model Official Website

Tip:

If context is simple, the Context Diagram can be merged with the System Architecture Diagram.

---

2.2 System Architecture Diagram

Purpose:

  • Define system boundaries and responsibilities.
  • Show high-level interactions between systems/subsystems.

Approach:

  • One diagram showing:
  • Cross-team large system interactions
  • Internal subsystem interactions

Notes:

  • A system/subsystem = cluster (microservice or deployed system).
  • Exclude logical modules in the same process.

Optional:

Single-service or monolithic applications with no external interaction can skip this diagram.

---

2.3 Physical Deployment

Purpose:

Correlates to the System Architecture Diagram, showing:

  • Single vs. clustered deployment
  • High availability
  • Shared machine sets

Representation:

Often via a table, e.g.:

| System/Subsystem | Data Center | # Machines | Protocols (HTTP/TCP/UDP) | Notes |

|------------------|-------------|------------|--------------------------|-------|

| Java Microservice 1 | XX | 2 | HTTP | |

| Subsystem 2 | XX | 1 (single) | UDP | |

| ... | ... | ... | ... | ... |

---

3. Medium View

These diagrams describe key structural and interaction details.

3.1 Domain Model vs. Data Model

Domain Model:

  • From DDD/UML.
  • Describes conceptual entities and relationships.

Data Model:

  • ER diagrams.
  • Focuses on storage entities and relationships.

Reality:

Strict separation is rarely maintained. If alignment is weak, favor data model clarity.

Checklist:

  • Key entities in your system
  • Relationships (1:1, 1:N, N:N)

Key Points:

  • ER diagrams omit most fields; focus on keys and state.
  • KV storage still requires relationship mapping.
  • Hybrid KV + DB systems must clarify consistency guarantees.

---

3.2 Sequence Diagram

Common Issues:

  • Inconsistent swimlane levels (system, subsystem, module, user).

Best Practice:

  • Pick one granularity and use UML conventions.

---

3.3 State Diagram

Purpose:

Model complex state transitions (often tied to DB `state` fields).

Approach:

  • Follow UML notation.

---

3.4 Concurrent Runtime View

Purpose:

Show thread/process communication & synchronization.

Mandatory if:

  • C++ systems with custom frameworks.
  • Describing thread safety, locking, blocking/waking.

Not needed if:

  • Standard Java microservices with fixed thread/process models.

---

3.5 Data Flow Diagram (Big Data Systems)

Applies to:

  • Offline data pipelines (TDW/HDFS, HBase, subtasks, MySQL, UI).

Purpose:

Map end-to-end data processing flow.

---

4. Micro Level

Detail-oriented specs for development.

  • API Documentation
  • Interfaces, parameters, data types, error handling.
  • Table Design (Full Spec)
  • Database & instance ownership
  • Detailed field explanations
  • Background Tasks
  • Number & cycles
  • Scheduling type (crontab, quartz, XXL-job, etc.)
  • Deployment location vs. services

---

5. Supplementary Notes

Default Assumptions Boost Efficiency:

  • API = standardized RPC
  • Background Task = standardized distributed scheduling
  • Message = standardized message middleware
  • DB = standardized DB deployment

By setting common defaults, teams reduce documentation overhead and speed communication.

---

Pro Tip:

For sharing technical documentation across multiple platforms efficiently, teams can integrate distribution and analytics tools. For example, AiToEarn官网 — an open-source global AI content monetization platform — enables simultaneous publishing of diagrams, explanations, and updates to channels like Douyin, Bilibili, LinkedIn, and more, paired with analytics (AI模型排名) to measure engagement and reach.

---

End of Document

Read more

Translate the following blog post title into English, concise and natural. Return plain text only without quotes. 哈佛大学 R 编程课程介绍

Harvard CS50: Introduction to Programming with R Harvard University offers exceptional beginner-friendly computer science courses. We’re excited to announce the release of Harvard CS50’s Introduction to Programming in R, a powerful language widely used for statistical computing, data science, and graphics. This course was developed by Carter Zenke.