Sequenzdiagramm
Zeigen Sie, wie Systeme und Menschen miteinander kommunizieren
Was ist ein Sequenzdiagramm?
Ein Sequenzdiagramm zeigt die im Zeitverlauf zwischen Teilnehmern ausgetauschten Nachrichten: API-Aufrufe, Authentifizierungsabläufe, Microservice-Kommunikation. Es ist der Standard, um Interaktionen in der Softwarearchitektur zu dokumentieren.
Sequenzdiagramme verdienen ihren Platz in Design-Reviews und Incident-Berichten, wo die Frage immer dieselbe ist: Wer hat wen aufgerufen, in welcher Reihenfolge, und was kam zurück. Nichts zeigt einen Reihenfolgefehler oder ein fehlendes Timeout schneller. Was sie nicht zeigen können, ist Zustand — eine Lebenslinie sagt, dass ein Teilnehmer beschäftigt ist, nie in welchem inneren Zustand er sich befindet oder was er sich zwischen zwei Durchläufen merkt.
Live-Beispiel
sequenceDiagram
autonumber
participant U as User
participant A as API
participant D as Database
U->>A: POST /login
A->>D: SELECT user
D-->>A: user row
A-->>U: 200 + JWT token
U->>A: GET /profile (Bearer)
A-->>U: 200 profileWann einsetzen
Häufige Fehler
Offen gelassene Aktivierungen
Zu jedem + gehört ein -, zu jedem activate ein deactivate. Ein unausgeglichenes Paar zeichnet entweder einen Balken bis zum unteren Rand des Diagramms oder scheitert mit „Trying to inactivate an inactive participant“.
Die Reihenfolge folgt der Deklaration
Mermaid ordnet Teilnehmer von links nach rechts in der Reihenfolge an, in der sie zuerst auftauchen; ein nur im Fehlerzweig erwähnter Teilnehmer landet ganz rechts. Deklarieren Sie jeden Teilnehmer vorab mit participant, in der gewünschten Reihenfolge.
Ein einfacher Pfeil ist kein Aufruf
A->B zeichnet eine durchgezogene Linie ohne Pfeilspitze, was aussieht, als sei nichts passiert. Synchrone Aufrufe sind ->>, Antworten -->>, Fire-and-forget-Nachrichten -). Achten Sie auf die Spitze, nicht nur auf die Striche.
Grundlegende Syntax
sequenceDiagram
participant A as Alice
participant B as Bob
A->>B: Sync request
B-->>A: Async responsesequenceDiagram autonumberautonumber stellt jeder Nachricht eine Nummer voran, sodass Reviewer im Kommentar auf „Schritt 4“ verweisen können, statt zu beschreiben, welchen Pfeil sie meinen.
U->>+API: POST /orders API-->>-U: 201 CreatedEin + am Pfeil öffnet einen Aktivierungsbalken beim Empfänger, ein - schließt ihn. So ist genau zu sehen, wie lange jeder Teilnehmer mit dem Aufruf beschäftigt bleibt.
note over API,DB: single transactionNotizen tragen die Details, die Pfeile nicht fassen: Transaktionsgrenzen, Retry-Strategie, Timeouts. Mit note left of oder note right of hängen Sie eine Notiz an einen einzelnen Teilnehmer.
box Payment domain participant PSP endEine box zeichnet einen beschrifteten Rahmen um Teilnehmer desselben Systems oder Teams. Ein Farbname vor der Beschriftung färbt den Rahmen ein.
Fragen zu diesem Diagramm
Was bedeuten die Pfeiltypen in einem Mermaid-Sequenzdiagramm?
Durchgezogene Pfeile (->>) sind synchrone Aufrufe, gestrichelte Pfeile (-->>) Antworten oder asynchrone Nachrichten. Aktivierungen zeigen, wann ein Teilnehmer mit der Verarbeitung beschäftigt ist.
Kann ich Schleifen und Bedingungen darstellen?
Ja — Mermaid unterstützt die Blöcke loop, alt (if/else), opt (optional) und par (parallel), um die Logik realer Protokolle auszudrücken.
Kann ich ein Sequenzdiagramm in die Beschreibung eines GitHub-Pull-Requests setzen?
Ja — fügen Sie den Code in einen Codeblock mit der Auszeichnung mermaid ein, und GitHub rendert ihn direkt in Pull Requests, Issues und Kommentaren. Anders als ein Screenshot lässt sich das Diagramm bei der nächsten Änderung als Text diffen.
Kann ein Mermaid-Sequenzdiagramm Dauer oder Latenz darstellen?
Nein. Die vertikale Achse zeigt nur die Reihenfolge — es gibt keine Zeitskala, zwei Pfeile im Abstand einer Millisekunde sehen aus wie zwei im Abstand einer Stunde. Schreiben Sie die Zahl in eine Notiz, oder nehmen Sie ein Gantt-Diagramm, wenn es um Dauer geht.
Wie stelle ich einen Teilnehmer dar, den es nur zeitweise gibt?
Deklarieren Sie ihn dort, wo er auftaucht, mit create participant Worker, und beenden Sie ihn mit destroy Worker. Die Lebenslinie beginnt dann bei der erzeugenden Nachricht und endet an einem Kreuz — so zeichnen Sie einen Job, eine Session oder einen temporären Prozess.
Wie hebe ich eine Gruppe von Nachrichten hervor?
Umschließen Sie sie mit rect rgb(240,240,255) … end, um den Hintergrund einzufärben — nützlich, um einen Retry-Block oder eine Transaktion zu markieren. rect-Blöcke lassen sich verschachteln, ein Retry innerhalb einer Transaktion bleibt also lesbar. Die Blöcke loop, alt und opt zeichnen ohnehin ihren eigenen beschrifteten Rahmen.
Sequenzdiagramm oder ein anderer Diagrammtyp?
Sequenzdiagramm oder Flowchart?
Zählen Sie die Systeme. Ein Prozess, der innerhalb einer Komponente läuft, ist ein Flowchart; zwei oder mehr Teilnehmer, die Nachrichten austauschen, sind ein Sequenzdiagramm. Wenn Sie „Service B empfängt …“ in einen Flowchart-Kasten schreiben, wechseln Sie — Lebenslinien nehmen Ihnen genau diese Arbeit ab.
Sequenzdiagramm oder Zustandsdiagramm?
Beide beschreiben Verhalten über die Zeit. Ein Sequenzdiagramm verfolgt einen Durchlauf durch das System und zeigt den Verkehr zwischen den Teilnehmern; ein Zustandsdiagramm deckt alle Durchläufe eines Teilnehmers ab und zeigt, was er sich merkt. Mit dem einen debuggen Sie, mit dem anderen spezifizieren Sie.
Erstellen Sie jetzt Ihr Sequenzdiagramm
Beschreiben Sie es in natürlicher Sprache — die KI schreibt den Mermaid-Code für Sie.
Mermaid Studio öffnen