Library
00/07 · ~34 min
GUIDEDECK · drawing systems people can actually follow

Diagramming &
Modeling — pictures
that align a team.

A 34-minute working session on the diagrams every engineer should recognize and draw — C4 for architecture, UML sequence for flows, BPMN for processes, ERDs for data — plus the tools that keep them honest.

~34 MINBEGINNER → INTERMEDIATETOOL-AGNOSTIC
SCROLL
01 · Why diagram at all 3 min

A picture aligns a team
faster than a page of prose.

Read three paragraphs describing how an order moves through five services and you'll build five different mental models. Show one diagram and the whole room is suddenly arguing about the same thing. A diagram is a shared, low-cost place to think out loud before you write any code.

Modela deliberate simplification of a system that keeps what matters for one conversation and throws away the rest. A diagramis just a model drawn as boxes, lines and labels. The skill isn't drawing prettily — it's choosing what to leave out so the point survives.

The audience picks the diagram

There is no single "right" diagram of a system — only the right diagram for this audience and this question. The same checkout system is four different pictures depending on who's in the room.

  • An executive wants one box and the systems it touches — not your class names.
  • A new engineer wants the deployable pieces and how a request flows between them.
  • A DBA wants tables, keys and relationships — nothing else.
  • Pick the zoom level and notation that answers the question being asked, then stop.
one system Executive C4 context New engineer sequence Analyst BPMN DBA ERD

Same system, four audiences — four diagrams at four zoom levels.

Align

Build one shared model

The diagram is cheaper to argue over than the code. Disagreements surface in minutes, not in the next sprint's pull request.

Onboard

Hand newcomers a map

A good context diagram saves a new hire a week of reading code to learn what talks to what.

Decide

Make trade-offs visible

Drawing the design forces the hard questions early — where the data lives, who calls whom, what happens on failure.

02 · The C4 model 6 min

Zoom into architecture
one level at a time.

Most architecture diagrams fail the same way: one canvas tries to show users, services, classes and queues all at once, and nobody can read it. C4 fixes this by giving you four fixed zoom levels, like Google Maps for software — country, city, street, building.

C4Context, Container, Component, Code — is a model created by Simon Brown for describing software architecture at four levels of zoom. Each level has a fixed audience and a fixed amount of detail. You draw the top two for almost everything; the bottom two only when a part genuinely needs them.
1
Context
your system + the people and systems around it
2
Container
the deployable/runnable parts inside it
3
Component
the major building blocks inside one container
4
Code
classes/functions — usually auto-generated

A container in C4 does notmean Docker — it means a separately runnable or deployable thing: a web app, an API, a database, a mobile app. Here are the two levels you'll draw most:

LEVEL 1 · CONTEXT
Customer [person] Banking System [your system] Email System [external] Mainframe [external] uses e-mails reads

The whole system as one box — who uses it, what it depends on. For non-technical stakeholders.

LEVEL 2 · CONTAINER
BANKING SYSTEM Customer [person] Web App [React · SPA] API Application [Java service] Database [PostgreSQL] Email System [external] HTTPS JSON SQL

Pop the lid: the deployable parts and how they talk. For engineers joining the team.

  • Notation stays dead simple — boxes for things, arrows for relationships, and every box says what it is and what tech it uses. No special shapes to memorize.
  • Stop zooming when detail stops helping. Most teams never draw Level 3 or 4 — the code itself, or an IDE, already shows that.
  • C4 pairs perfectly with diagram-as-code (Section 6) — the same boxes-and-arrows render cleanly from a text file in your repo.
03 · UML sequence diagrams 5 min

Show a flow as it unfolds
over time.

A context or container diagram shows structure — what exists. A sequence diagram shows behavior— the exact order of messages when one specific thing happens, like a user logging in. It's the single best diagram for explaining an API call or a flow that crosses several services.

Sequence diagram a UML diagram that reads top-to-bottom as time. Each participant gets a vertical lifeline; horizontal messages (arrows) flow between them in order. UML (Unified Modeling Language) is the long-standing standard notation for software diagrams — the sequence diagram is by far its most-used member.
%% Mermaid — renders to the diagram beside it sequenceDiagram User->>Browser: tap "Log in" Browser->>API: POST /login API->>DB: SELECT user DB-->>>API: user row API-->>>Browser: 200 + token Browser-->>>User: show dashboard
User Browser API DB tap "Log in" POST /login SELECT user user row 200 + token show dashboard

Solid arrows are calls (going right); dashed arrows are returns (coming back). Time runs downward.

Actor / participant

A box at the top — a person, a service, a database. Each owns the lifeline below it.

Lifeline

The dashed vertical line. Position down the line means "later in time".

Message

A horizontal arrow. Solid for a synchronous call, dashed for the reply that comes back.

Activation

The thin bar on a lifeline showing the participant is busy doing work for that call.

Keep it to one scenario. A sequence diagram earns its keep by showing the happy path of a single flow, or one failure case — not every branch. If you find yourself adding a dozen loops and conditions, you want a flowchart or a BPMN diagram instead.

04 · BPMN — process modeling 5 min

Model how work flows,
not how code runs.

Some flows aren't about services calling each other — they're about a business process: a request comes in, someone reviews it, a decision splits the path, work happens, the process ends. BPMN is the standard for drawing these so that engineers, analysts and managers all read the same picture.

BPMN Business Process Model and Notation — is a standard set of shapes for modeling a process from start to finish. Its power is a shared vocabulary: a circle is always an event, a rounded rectangle is always a task, a diamond is always a decision. Non-developers can read it without a tutorial.
start Submit request × Approved? Grant access Send notice end yes no

An access-request process: a start event, a task, an exclusive (either/or) gateway, two outcomes, and an end event.

Event · circle

Something happens

A thin circle starts the process; a thick circle ends it. Events can also fire mid-flow (a timer, a message arriving).

Task · rounded box

A unit of work

One step a person or system performs — "Submit request", "Grant access". The verbs of the process.

Gateway · diamond

The path splits or joins

An exclusive gateway (×) takes exactly one branch; a parallel one (+) runs branches at once. The decisions.

Flow · arrow

Order of execution

A solid arrow is the sequence — what happens next. Lanes (not shown) group tasks by who owns them.

Sequence diagram vs BPMN? Reach for a sequence diagramwhen the audience is engineers and the question is "what calls what, in what order". Reach for BPMNwhen the audience includes the business and the question is "what are the steps and decisions in this process".

05 · ERDs & data models 5 min

Draw the shape of your
data before you store it.

Before a single table exists, an entity-relationship diagram lets you agree on what things you store, what facts you keep about each, and how they connect. Get the relationships and cardinality right on paper and you avoid the most expensive class of mistake — a schema you have to migrate under load.

ERD Entity-Relationship Diagram — models data as entities (the things you store, usually a table — Customer, Order), their attributes (the columns — name, total), and the relationships between them. Cardinality is the count rule on a relationship: how many of one entity relate to how many of another.
%% Mermaid ER — one customer, many orders erDiagram CUSTOMER ||--o{ ORDER : places ORDER }o--o{ PRODUCT : contains CUSTOMER { int id PK string email } ORDER { int id PK int customer_id FK }
CUSTOMER PK id name email ORDER PK id FK customer_id total PRODUCT PK id name price 1 N N M places · 1-to-many contains · many-to-many

The forked "crow's foot" end means "many"; the single bar means "one".

One-to-many · 1:N

The common case. One customer placesmany orders; each order belongs to exactly one customer (a foreign key on the "many" side).

Many-to-many · M:N

An order contains many products; a product appears in many orders. In a real schema this needs a join table in the middle.

PK & FK

A primary key uniquely identifies a row; a foreign key points at another table's primary key — that's the wire the relationship rides on.

Crow's-foot notationis the dialect you'll see most: the three-pronged "foot" marks the many side, a small bar marks the one side, and an extra circle means optional (zero is allowed). It reads left-to-right like a sentence — "one customer places zero-or-many orders".

06 · The tooling landscape 5 min

Diagram-as-code
vs drawing tools.

The biggest tooling choice isn't which app — it's whether your diagrams are text you commit to the repo or pictures you draw by hand. Each wins a different job; mature teams use both deliberately.

Diagram-as-code writing diagrams as plain text that renders to a picture. Because the source is text, it lives next to your code, diffs in a pull request, and never drifts out of date silently. The trade-off: you give up pixel-perfect control over layout.
Mermaid

Diagram-as-code · default

Pro — renders straight inside GitHub, GitLab and Markdown; zero install.
Con — auto-layout can get awkward on big, dense diagrams.

PlantUML

Diagram-as-code · power

Pro — broadest UML coverage and fine control; battle-tested.
Con — needs a render server/Java; syntax is heavier to learn.

Excalidraw

Drawn · whiteboard

Pro — fast, hand-drawn feel; perfect for live brainstorming.
Con— freeform, so it drifts from reality and isn't versioned in git.

draw.io

Drawn · free & precise

Pro — free, huge shape libraries, stores as a file you can commit.
Con — manual layout means upkeep; diffs are unreadable XML.

Lucidchart

Drawn · polished & shared

Pro — slick collaboration, templates, great for exec-facing decks.
Con — paid SaaS; lives outside the repo, so it ages quietly.

How to choose

Match tool to lifespan

Diagram that must stay true → diagram-as-code in git. A throwaway brainstorm → Excalidraw. A polished hand-off → Lucidchart or draw.io.

  • Architecture & flows that outlive the meeting — Mermaid or PlantUML, committed beside the code. They get reviewed and updated like code, so they stay honest.
  • Live thinking on a call — Excalidraw. Speed and erasability beat precision; screenshot it into the ticket if it matters.
  • A diagram leaving the engineering org — Lucidchart or draw.io, where polish and shareability earn their cost.
  • Whatever you pick, write the diagram source somewhere a teammate can find and edit it — an un-editable PNG is where accuracy goes to die.
07 · Pick the right diagram & recap 5 min

Start from the question,
then pick the diagram.

Every diagram in this deck answers a different question for a different audience. The skill is matching the two — and then drawing only as much as that question needs.

"What is this system?"

C4 Context / Container

For stakeholders and new engineers — the boxes and the wires between them.

"What calls what, when?"

UML sequence

For engineers debugging or designing one flow across services, over time.

"What are the steps?"

BPMN

For business + engineering looking at a process with decisions and outcomes.

"How is data shaped?"

ERD

For anyone touching the schema — entities, attributes, and cardinality.

1The audience picks the diagram.There's no single right picture — only the right one for this room and this question.
2Zoom on purpose.C4's levels (Context → Container → Component → Code) keep each canvas at one altitude. Stop when detail stops helping.
3Structure vs behavior vs process vs data. Container shows structure, sequence shows behavior, BPMN shows process, ERD shows data. Know which you need.
4Leave things out. A model is valuable because of what it omits. One clear scenario beats an exhaustive, unreadable one.
5Keep the source where it'll stay true. Diagram-as-code in git for anything that must not drift; whiteboards for thinking out loud.
Knowledge check

Did it stick?

Five quick questions on C4, sequence diagrams, BPMN, ERDs, and tooling — instant feedback, no sign-in.

Rate this deck
be the first

Navigate with ← → or scroll · back to library