What is a High-Level System Diagram?
A High-Level System Diagram (HLD) is a visual representation of the overall architecture of a system or application. It shows the main components, modules, or services of the system and how they interact with each other, external systems, or users — without going into technical details or implementation specifics.
Purpose:
- To provide a big-picture view of the system.
- To illustrate key components and their relationships.
- To explain how data and control flow between components.
- To communicate system architecture to both technical and non-technical stakeholders.
Typical Audience:
- Product Owners
- Management
- Stakeholders
- Development Teams (as a starting point)
Common Elements / Controls in a High-Level System Diagram
Here are typical visual elements you’ll find in HLDs, and what they mean:
1. Boxes (Rectangles) — Components or Modules
- What: Rectangular shapes represent major components, systems, services, or modules.
- Purpose: To visually group and identify parts of the system.
Example:
- Web Server
- Database
- Authentication Service
- Third-party API
2. Arrows — Flow or Interaction
- What: Lines with arrowheads connecting boxes.
- Purpose: Represent direction of data flow, control flow, or communication between components.
Arrow Types:
- Solid Arrow: Indicates synchronous or direct communication (e.g., API calls).
- Dashed Arrow: Indicates asynchronous communication, events, or notifications.
- Double-headed Arrow: Two-way communication or bidirectional data exchange.
3. Cloud Shapes — External Systems or Networks
- What: Cloud-like shape to represent external systems or network boundaries.
- Purpose: To indicate systems outside the control or boundary of the system being designed.
Example:
- External Payment Gateway
- User’s Browser or Mobile App
- Third-party Authentication Provider
4. Database Symbol (Cylinder)
- What: Cylinder shape represents data storage like databases.
- Purpose: To show where data is persisted or accessed.
Example:
- Relational DB
- NoSQL DB
- File Storage
5. Containers / Grouping Boxes
- What: Large boxes or containers that group related components.
- Purpose: Show subsystems or layers within the overall architecture.
Example:
- Frontend Layer
- Backend Services
- Infrastructure Layer
6. Annotations / Text
- What: Notes, labels, or descriptions attached to components or arrows.
- Purpose: Provide extra context, such as protocols used (HTTP, gRPC), data formats (JSON, XML), or important behaviors.
Example & Explanation of Controls in a Simple High-Level System Diagram
[User's Browser] ---> (HTTP Request) ---> [Web Server] ---> (Queries) ---> [Database]
\ |
\---> (API Call) ---> [Authentication Service] --|
- Boxes: Represent
User's Browser
,Web Server
,Database
,Authentication Service
. - Solid Arrows: Represent synchronous communication or request/response flows.
- Labels on Arrows: Indicate the type of interaction, like "HTTP Request", "API Call", or "Queries".
- Grouping (not shown here): Could group Web Server + Authentication Service as "Backend Layer".
Summary Table of Controls in High-Level System Diagrams
Control Type | Visual Representation | Purpose/Meaning |
---|---|---|
Box (Rectangle) | Simple rectangle | Component, module, service |
Arrow (Solid) | Solid line with arrowhead | Synchronous flow / direct call |
Arrow (Dashed) | Dashed line with arrowhead | Asynchronous flow / event |
Arrow (Double-headed) | Line with arrowheads both ends | Bidirectional communication |
Cloud | Cloud shape | External system or boundary |
Cylinder (Database) | Cylinder shape | Data storage or database |
Grouping Box | Large rectangle grouping others | Subsystem or architectural layer |
Text / Annotation | Labels near arrows or boxes | Clarification / protocols / notes |
Tags
System Design