system-diagram-generator
System Diagram Generator
Generate clear, accurate visual representations of system structure using text-based diagram formats.
Quick Start
When a user requests a system diagram:
- Understand the system: Ask clarifying questions about components, relationships, and scope
- Choose the format: Select based on user preference or context (default to Mermaid for versatility)
- Select diagram type: Match the visualization to the information being conveyed
- Generate the diagram: Create the diagram code with clear labels and structure
- Provide context: Include a brief explanation of what the diagram shows
Format Selection
Mermaid (Default)
Use for most cases - renders in Markdown, GitHub, GitLab, and many documentation tools.
Best for:
- Quick visualizations
- Documentation in Markdown files
- GitHub/GitLab README files
- General-purpose diagrams
See: mermaid-patterns.md for examples
PlantUML
Use when detailed UML diagrams are needed or when working with Java/enterprise systems.
Best for:
- Detailed UML diagrams
- C4 architecture models
- Complex component relationships
- Enterprise documentation
See: plantuml-patterns.md for examples
Graphviz/DOT
Use for complex network topologies or when fine-grained layout control is needed.
Best for:
- Network diagrams
- Complex hierarchies
- Graph structures
- Custom layout requirements
See: graphviz-patterns.md for examples
Diagram Types
Architecture Diagrams
Show system components, services, databases, and their relationships.
Use when:
- Explaining system structure
- Documenting microservices
- Showing component dependencies
- Illustrating system boundaries
Key elements:
- Services/components (boxes)
- Databases (cylinders)
- External systems
- Communication protocols
- Data stores
Data Flow Diagrams
Illustrate how data moves through the system.
Use when:
- Explaining data processing pipelines
- Documenting ETL processes
- Showing transformation steps
- Illustrating validation flows
Key elements:
- Data sources
- Processing steps
- Transformations
- Data stores
- Outputs
Deployment Diagrams
Show infrastructure, servers, containers, and deployment topology.
Use when:
- Documenting cloud infrastructure
- Explaining deployment architecture
- Showing network topology
- Illustrating container orchestration
Key elements:
- Cloud providers/regions
- Networks/subnets
- Servers/containers
- Load balancers
- Databases and caches
Sequence Diagrams
Visualize API calls, user interactions, and process flows over time.
Use when:
- Documenting API interactions
- Explaining authentication flows
- Showing request/response cycles
- Illustrating multi-step processes
Key elements:
- Actors/participants
- Messages/calls
- Time sequence (top to bottom)
- Return values
- Conditional logic
Best Practices
Clarity
- Use descriptive, meaningful names for all components
- Keep diagrams focused on one aspect of the system
- Avoid overcrowding - split complex systems into multiple diagrams
- Use consistent naming conventions
Structure
- Group related components using subgraphs/clusters
- Show clear directional flow (left-to-right or top-to-bottom)
- Use appropriate shapes for different component types
- Include relevant protocols and technologies
Context
- Add a title or caption explaining what the diagram shows
- Include legends for non-obvious symbols or colors
- Provide brief explanations of key components
- Note any assumptions or simplifications
Format-Specific
- Mermaid: Use standard graph types (flowchart, sequence, C4)
- PlantUML: Leverage UML stereotypes and C4 includes
- Graphviz: Use clusters for grouping and rankdir for layout
Workflow
-
Gather requirements
- What system or process needs visualization?
- What level of detail is needed?
- Who is the audience?
- Any format preferences?
-
Choose format and type
- Select diagram format (Mermaid/PlantUML/Graphviz)
- Select diagram type (architecture/data flow/deployment/sequence)
- Load relevant reference file if needed
-
Create diagram
- Define all components/nodes
- Establish relationships/edges
- Add grouping/structure
- Include labels and protocols
-
Validate and refine
- Ensure all components are labeled
- Verify relationships are clear
- Check for visual balance
- Add explanatory text
-
Deliver
- Provide the diagram code in a code block
- Include brief explanation
- Suggest improvements or variations if relevant
Example Usage Patterns
User: "Show me the architecture of our authentication system" → Create Mermaid architecture diagram showing auth components
User: "Diagram the data flow for user registration" → Create Mermaid flowchart showing registration data flow
User: "Visualize our AWS deployment" → Create Mermaid or Graphviz deployment diagram with AWS infrastructure
User: "Show the sequence of API calls for checkout" → Create Mermaid sequence diagram showing checkout flow
User: "I need a detailed UML component diagram" → Create PlantUML component diagram with stereotypes
User: "Map out our network topology" → Create Graphviz network diagram with clusters