How to Draw a Software Architecture Diagram: A Step-by-Step Guide

How to draw an architecture diagram people can read: define the reader and question, pick the type, label every arrow, keep it current.

10/8/2026

How to Draw a Software Architecture Diagram: A Step-by-Step Guide

When you sit down to draw your first architecture diagram, the hard part is not drawing boxes. It is deciding what to leave out. This guide covers how to draw an architecture diagram for software and systems: services, databases, queues, network zones and the connections between them. Whether it is your first software architecture diagram or your team's tenth, the steps below help you produce one that people can read and that stays current.

Start with the audience and the question

A good diagram answers one question. "Everything in our system" is not a question; it is an inventory, and inventories belong in a table.

Before you draw anything, write down two sentences:

  • Who is the reader? A developer who just joined, the on-call SRE, a security reviewer, a product manager, an external auditor.
  • What question does it answer? "Which services does an order request pass through?", "What is exposed to the internet?", "Where does traffic go if a region fails?"

Those two sentences set the scope. A new developer needs a different level of detail than the network team. Try to serve both in one picture and you serve neither.

Pick the diagram type

Once the question is clear, the type mostly picks itself. The C4 model is a good starting point: it splits a system into zoom levels called context, container, component and code (details at c4model.com).

The question you want to answer Diagram type Typical reader
Which users and external systems does our system talk to? Context (C4 level 1) Everyone, including non-engineers
Which applications and data stores make up the system? Container (C4 level 2) Developers, architects
Where and how do those containers run? Deployment / infrastructure Platform team, SREs
Which network zones does traffic cross, under which rules? Network diagram Network and security teams
In what order is a request handled? Sequence diagram Developers, on-call engineers
Where does data come from, go to and get transformed? Data flow diagram Data team, security, compliance

If you are not sure, start with a context diagram. It makes the system boundary and external dependencies explicit and gives every later diagram a frame.

How to draw an architecture diagram, step by step

1. Set the scope and the boundary

Write down what is inside the diagram and what stays outside. Components your team owns sit inside the boundary; a payment provider, an identity provider or another team's service sit outside. Show each external system as a single box.

2. List the components

Make a list before you draw: services, databases, queues, caches, external APIs, user types. Use the names the team actually uses; if they match the repo or deployment name, even better. If the list is too long to take in at a glance, you probably have material for two diagrams.

3. Draw relationships as labeled, directional arrows

An unlabeled line only tells the reader that two things are "somehow related". Give every arrow a direction and at least two facts: protocol and intent. Add sync or async where it matters.

checkout-web  --[HTTPS/JSON · POST /orders · sync]-->  order-api
order-api     --[AMQP · order.created · async]------>  orders-queue
order-api     --[TCP 5432 · SQL · read/write]------->  orders-db

Point the arrow from the caller to the receiver. Skip a second arrow for the response; it doubles the line count for no gain. If the order of requests and responses matters, that is what a sequence diagram is for.

4. Group with frames

Groups are the second reading layer. Put components inside boundaries that mean something:

  • Network zones: public subnet, private subnet, DMZ, on-prem network
  • Kubernetes namespaces: payments, platform, observability
  • Regions and accounts: eu-central-1, us-east-1, prod and staging accounts
  • Trust boundaries: where traffic from the internet gets authenticated

Nesting is fine (region > VPC > subnet), but every extra level makes the diagram harder to read.

5. Add a legend

If a color, line style or icon carries meaning, the legend has to say so. Is a dashed line an async message? Is a red frame PCI scope? What is obvious to the person who drew it is not obvious to someone reading it six months later.

6. Add a title, date and owner

Put three things in a corner of every diagram: a title that says what it shows ("Checkout — container view, prod"), the date of the last update, and the owning team. Nobody can tell whether an undated diagram is current, and nobody updates a diagram without an owner.

Container diagram of a checkout system: the customer uses checkout-web, which calls order-api; order-api publishes to orders-queue, writes to orders-db and calls an external payment provider; checkout-web signs in through an identity provider; a legend and a title block sit on the canvas.

10 components · 6 connections

Open in Archboard
Diagram contents
  • Checkout · owned by payments team
  • Customer
  • checkout-web
  • order-api
  • orders-queue
  • orders-db
  • Identity provider
  • Payment provider
  • HTTPS · browse and check out
  • HTTPS/JSON · POST /orders · sync
  • AMQP · order.created · async
  • TCP 5432 · SQL · read/write
  • OIDC sign-in
  • HTTPS · charge · sync
Steps 1–6 in one diagram: a clear boundary, labeled directional arrows, external systems outside, plus a legend and a title block with date and owner.

7. Review it with someone who didn't draw it

Show the diagram to someone who did not draw it and ask the question you wrote down at the start. If they find the answer without your help, the diagram works. If you keep saying "what I meant here is…", put that explanation into the diagram.

Common mistakes

  • Everything in one diagram. Context, deployment and network detail in one picture means none of it gets read.
  • Unlabeled or double-headed arrows. Who calls whom stays unclear, and that is exactly what people look for during an incident.
  • Mixed levels of abstraction. If one box is "Payment System" and the next is "Redis pod", the reader loses the sense of scale.
  • Unexplained colors. Colors missing from the legend are either decoration or get misread.
  • No owner, no date. A diagram on a wiki page with no known author slowly turns into a source of wrong information.

Keeping it current

A diagram is only useful while people trust it. A few habits help:

  • Keep the diagram close to the system's docs and link it from the README or runbook.
  • Add "diagram updated?" to the checklist of pull requests that change the architecture.
  • Keep a revision before large changes, so "what did it look like last quarter?" has an answer.
  • Put a recurring review on the owning team's calendar, for example once a quarter.

Drawing a software architecture diagram in Archboard

Archboard is a hosted architecture workspace for platform and product teams. The steps above work in any tool; in Archboard they look like this:

  1. Sign in. Use the login page with Google or GitHub. Your first sign-in creates your account and organization; no credit card.
  2. Pick your packs. Archboard has 27 built-in packs with 223 node types. For a first diagram these usually cover it:
  • C4 Model: Person, Software System, Container, Component, Database and boundaries, for context and container views.
  • Kubernetes: Namespace (drawn as a frame), Deployment, Pod, Service, Ingress, ConfigMap, Secret, PVC, HPA, NetworkPolicy and more.
  • Cloud: for cloud infrastructure, including a k8s-cluster node for multi-account maps.
  • Network: for network zones and links.
  1. Connect ports. Nodes are first-class nodes with ports, not generic shapes. Drag a connection from port to port and label it with protocol and intent.
  2. Group with frames. Use the Core Frame for network zones and regions, the Kubernetes Namespace for namespaces, and C4 boundaries for the system boundary.
  3. Add a title and legend. Drop a Markdown block or a Table on the canvas so title, date, owner and legend live in one place.
  4. Share. Send the public share link to your reviewer (branded on Free). On Pro and Enterprise you can embed the diagram in your docs site with an iframe.
  5. Export. Export SVG or PNG (watermarked on Free); Pro adds JPEG, PDF and animated GIF / WebM, all without a watermark. You can also export the diagram document as structured JSON.

Changes autosave, and every diagram keeps revisions: the last 5 on Free, a year of history on Pro and no time limit on Enterprise. Free includes every built-in pack, 3 diagrams, and 15 diagram nodes plus 150 notes, text, stickers and mind map topics per diagram, which is plenty for a first context diagram; Pro unlocks unlimited diagrams and nodes for full deployment maps. See pricing for details.

Before you start, browse the examples gallery: open a public example and copy it into your workspace with Use this example (it counts toward your diagram quota). For C4 and Kubernetes specifics, see the C4 use case and Kubernetes use case pages. Early ideas can start on the same canvas too: Archboard has sticky notes and mind maps next to the architecture packs.

Checklist and FAQ

Before you publish:

  • Reader and question are written down
  • The boundary is clear; external systems are single boxes
  • Every arrow has a direction and a protocol + intent label
  • Groups show real boundaries: network zones, namespaces, regions
  • Legend, title, date and owner are present
  • Someone who didn't draw it could answer the question

What is the difference between an architecture diagram and a flowchart? An architecture diagram shows structure: which components exist and how they connect. A flowchart shows the steps and decision points of a process. If the order of a request over time matters, use a sequence diagram.

How many diagrams should I draw? One per reader-and-question pair. For most systems, a context, a container and a deployment diagram are a good start.

Which tool should I use? One that knows the concepts you draw. Archboard ships Kubernetes, C4 and cloud concepts as ready-made nodes with ports, so your diagram stays readable and easy to keep current. Whatever you choose, the real test is whether the diagram answers your question.

Start free — one seat, no credit card.

Related posts

← Back to blog

Open a canvas in a minute

Sign in with Google or GitHub. Free for a single seat. Upgrade when the team joins.