Hoe je een mermaid sequence diagram schrijft

Een sequence diagram laat zien wie met wie praat, en in welke volgorde. In mermaid duurt het schrijven ervan ongeveer net zo lang als het hardop beschrijven, wat is waarom dit het diagramtype is dat het langst standhoudt in een codebase. Alles hieronder is kopieer-plak-klaar voor de editor.

Het minimum

Declareer het diagramtype, schrijf dan één regel per bericht. Participants worden aangemaakt bij eerste vermelding, in de volgorde waarin ze verschijnen.

sequenceDiagram
  User->>API: POST /orders
  API->>DB: INSERT order
  DB-->>API: order id
  API-->>User: 201 Created

Declareer participants expliciet met participant User wanneer je een specifieke volgorde van links naar rechts wilt, in plaats van de volgorde van eerste vermelding.

Pijltypes

SyntaxBetekenis
A->>B: textVerzoek — doorgetrokken lijn, gevulde pijlpunt
A-->>B: textAntwoord — gestippelde lijn, gevulde pijlpunt
A->B: textDoorgetrokken lijn, open pijlpunt
A-)B: textAsynchroon bericht — open pijlpunt, geen antwoord verwacht
A-xB: textBericht dat mislukt of wordt weggegooid

De conventie die het waard is om aan te houden: doorgetrokken voor de aanroep, gestippeld voor het antwoord. Een lezer kan dan een verzoek van een antwoord onderscheiden zonder ook maar één label te lezen.

Participants en aliassen

sequenceDiagram
  participant U as Browser
  participant A as API gateway
  participant S as Order service
  U->>A: GET /orders
  A->>S: list(userId)
  S-->>A: orders
  A-->>U: 200 OK

Gebruik actor U as Browser in plaats van participant om een stokfiguur te tekenen — de moeite waard voor de mens aan de linkerrand van een authenticatieflow.

Activatiebalken

Activatiebalken laten zien hoe lang een participant bezig is. Markeer ze expliciet met activate/deactivate, of voeg + en - toe aan de pijlen, wat korter is en minder snel uit balans raakt.

sequenceDiagram
  User->>+API: POST /pay
  API->>+Bank: charge
  Bank-->>-API: authorised
  API-->>-User: receipt

Loops, voorwaarden en parallel werk

sequenceDiagram
  User->>API: POST /import
  loop every row
    API->>DB: upsert row
  end
  alt all rows valid
    API-->>User: 200 OK
  else some failed
    API-->>User: 422 with errors
  end
  par notify
    API->>Email: send summary
  and audit
    API->>Log: write entry
  end
  • loop <label> … end — herhaling.
  • alt <label> … else <label> … end — elkaar uitsluitende vertakkingen.
  • opt <label> … end — een vertakking die simpelweg niet hoeft te gebeuren.
  • par <label> … and <label> … end — dingen die tegelijk gebeuren.
  • critical / break — een sectie die niet onderbroken mag worden, en een vroegtijdige uitgang.

Notities

sequenceDiagram
  User->>API: POST /login
  Note right of API: Rate limited<br>5 per minute
  API-->>User: token
  Note over User,API: Token is valid for 30 days

Note over A,B overspant twee participants en is de juiste plek voor een beperking die bij de interactie hoort in plaats van bij een van beide kanten ervan.

Een volledig voorbeeld

sequenceDiagram
  actor U as User
  participant A as App
  participant P as Provider
  U->>+A: Click "Sign in"
  A-->>-U: Redirect to provider
  U->>+P: Authorise
  P-->>-U: Redirect back with code
  U->>+A: GET /callback?code=…
  A->>+P: Exchange code for token
  P-->>-A: access token
  Note right of A: Session cookie set here
  A-->>-U: Signed in
OAuth-login, van begin tot eind.

Bewerk dit diagram

Plak het in het codetabblad en verander een regel — de preview rendert opnieuw terwijl je typt.

Veelgestelde vragen

Hoe nummer ik de berichten?

Zet autonumber op de regel direct na sequenceDiagram. Elk bericht krijgt dan een volgnummer, wat een diagram veel makkelijker maakt om over te praten in reviewcommentaar.

Kan een participant een bericht naar zichzelf sturen?

Ja — schrijf dezelfde naam aan beide kanten: API->>API: retry. Mermaid tekent de lus terug naar dezelfde lifeline.

Hoe laat ik zien dat een participant vernietigd wordt?

Gebruik destroy <name> vóór het bericht dat hem beëindigt, of create participant <name> om hem halverwege het diagram te laten verschijnen in plaats van bovenaan.

Kan ik een sequence diagram bewerken op het visuele canvas?

Het visuele canvas bewerkt flowcharts. Sequence diagrams worden geschreven op het codetabblad, waar ze live renderen in de preview — wat meestal sneller is, omdat een sequence diagram in essentie een lijst met regels is.

Meer gidsen

  1. Mermaid exporteren naar PNG of SVG

    Vier manieren uit een mermaid-diagram — PNG, SVG, .mmd-broncode en een Markdown-blok — en wanneer elke het juiste antwoord is.

  2. Mermaid syntax cheatsheet

    Knoopvormen, pijlen, subgraphs en styling op één pagina — plus een werkend voorbeeld van elk diagramtype dat mermaid rendert.

Open de editor. Gratis — geen aanmelding.

Een leeg canvas, een codetabblad en elke exportoptie — gratis, in je browser, nu meteen.