Zum Hauptinhalt springen

Mermaid Sequenzdiagramm: Spickzettel

Sequenzdiagramme zeigen Nachrichten zwischen Teilnehmern. Nutze Flussdiagramme für Entscheidungen und Klassendiagramme für statische Strukturen.

Mit dem Sequenzdiagramm-Generator erstellen →

Schnellstart

Deklariere Aliasse vor Nachrichten, um die Reihenfolge der Lebenslinien festzulegen.

Mermaid
sequenceDiagram
  actor R as Leser
  participant S as Suchdienst
  R->>+S: Anleitung suchen
  S-->>-R: Ergebnisse liefern

Wird geladen…

Syntaxreferenz

Syntaxreferenz
SyntaxBedeutung
sequenceDiagram / participant / actor / asDeklariert Lebenslinien und Aliasse; actor zeigt eine Person.
participant A@{ "type": "boundary" }Typen: boundary, control, entity, database, collections und queue; participant und actor decken die Grundformen ab.
->Durchgezogene Linie ohne Spitze
-->Gestrichelte Linie ohne Spitze
->>Durchgezogener Pfeil
-->>Gestrichelter Pfeil
<<->>Durchgezogener beidseitiger Pfeil
<<-->>Gestrichelter beidseitiger Pfeil
-xDurchgezogene Linie mit Kreuz
--xGestrichelte Linie mit Kreuz
-)Offener durchgezogener Pfeil, asynchron
--)Offener gestrichelter Pfeil, asynchron
-|\Halbpfeilvariante; das Beispiel zeigt Richtung und Linienart.
--|\Halbpfeilvariante; das Beispiel zeigt Richtung und Linienart.
-|/Halbpfeilvariante; das Beispiel zeigt Richtung und Linienart.
--|/Halbpfeilvariante; das Beispiel zeigt Richtung und Linienart.
/|-Halbpfeilvariante; das Beispiel zeigt Richtung und Linienart.
/|--Halbpfeilvariante; das Beispiel zeigt Richtung und Linienart.
\\-Halbpfeilvariante; das Beispiel zeigt Richtung und Linienart.
\\--Halbpfeilvariante; das Beispiel zeigt Richtung und Linienart.
-\\Halbpfeilvariante; das Beispiel zeigt Richtung und Linienart.
--\\Halbpfeilvariante; das Beispiel zeigt Richtung und Linienart.
-//Halbpfeilvariante; das Beispiel zeigt Richtung und Linienart.
--//Halbpfeilvariante; das Beispiel zeigt Richtung und Linienart.
//-Halbpfeilvariante; das Beispiel zeigt Richtung und Linienart.
//--Halbpfeilvariante; das Beispiel zeigt Richtung und Linienart.
A->>()B / A()->>B / A()->>()BVerbindet Nachrichten mit der Mitte der sendenden oder empfangenden Lebenslinie.
activate / deactivate / ->>+ / -->>-Beginnt und beendet Aktivierungen; verschachtelte Aktivierungen müssen ausgeglichen sein.
create participant / create actor / destroyErzeugt vor der ersten eingehenden Nachricht und zerstört vor der letzten.
Note left of / right of / over A,BPositioniert Notizen neben oder über Lebenslinien; <br/> erzeugt Umbrüche.
loop / alt / else / opt / par / and / critical / option / break / rect / endJeder Block endet mit end; else, and und option gehören zum jeweiligen Block. rect erhält eine Farbe.
autonumber / autonumber 10 5Nummeriert Nachrichten mit optionalem Start und Schritt.
box Color Label / endGruppiert Teilnehmerdeklarationen in farbigen oder transparenten Kästen.
link A: Label @ URL / links A: {"Label":"URL"}Fügt einen Link oder ein JSON-Menü zum Teilnehmer hinzu.
%% / accTitle: / accDescr:Kommentare und zugängliche Beschreibungen.

Teilnehmer und Aliasse

Kurze Ids identifizieren Teilnehmer; Aliasse tragen sichtbaren Text. JSON ändert das Symbol. Deklariere Lebenslinien vor den Nachrichten.

Mermaid
sequenceDiagram
  actor R as Leser
  participant B@{ "type": "boundary" }
  participant C@{ "type": "control" }
  participant E@{ "type": "entity" }
  participant D@{ "type": "database" }
  participant L@{ "type": "collections" }
  participant Q@{ "type": "queue" }
  R->>B: Anfrage
  B->>C: Validieren
  C->>E: Lesen
  E->>D: Abfrage
  D-->>L: Ergebnisse
  L-)Q: Benachrichtigen

Wird geladen…

Pfeilarten

Wähle Pfeile nach deiner Konvention. Offene Pfeile stehen oft für asynchrones Senden; ein Kreuz beendet die Lebenslinie nur zusammen mit destroy.

Mermaid
sequenceDiagram
  participant A as Sender
  participant B as Empfänger
  A->B: Nachricht
  A-->B: Nachricht
  A->>B: Nachricht
  A-->>B: Nachricht
  A<<->>B: Nachricht
  A<<-->>B: Nachricht
  A-xB: Nachricht
  A--xB: Nachricht
  A-)B: Nachricht
  A--)B: Nachricht
  A-|\B: Nachricht
  A--|\B: Nachricht
  A-|/B: Nachricht
  A--|/B: Nachricht
  A/|-B: Nachricht
  A/|--B: Nachricht
  A\\-B: Nachricht
  A\\--B: Nachricht
  A-\\B: Nachricht
  A--\\B: Nachricht
  A-//B: Nachricht
  A--//B: Nachricht
  A//-B: Nachricht
  A//--B: Nachricht
  A()->>()B: Zentrale Verbindung

Wird geladen…

Erzeugung und Aktivierung

create steht unmittelbar vor der Erzeugungsnachricht, destroy vor der abschließenden Nachricht. Gleiche Aktivierungen aus.

Mermaid
sequenceDiagram
  participant C as Steuerung
  create participant W as Arbeitsprozess
  C->>+W: Auftrag starten
  Note right of W: Temporärer Prozess
  W-->>-C: Auftrag abgeschlossen
  destroy W
  C-xW: Prozess beenden

Wird geladen…

Kontrollblöcke

Schließe Blöcke mit end. else trennt Alternativen, and parallele Zweige, option Wiederherstellungszweige von critical. break zeigt einen Ausnahmeabbruch.

Mermaid
sequenceDiagram
  participant C as Client
  participant S as Dienst
  loop Wiederholung
    C->>S: Anfrage
    alt Angenommen
      S-->>C: Ergebnis
    else Abgelehnt
      S-->>C: Fehler
    end
  end
  opt Cache-Treffer
    S-->>C: Zwischengespeichertes Ergebnis
  end
  par Protokollierung
    S->>S: Aufzeichnen
  and Metriken
    S->>S: Zählen
  end
  critical Bestätigung
    S->>S: Speichern
  option Fehlschlag
    S-->>C: Zurückrollen
  end
  break Zeitüberschreitung
    S-->>C: Beenden
  end
  rect rgb(230,240,255)
    Note over C,S: Prüfgrenze
  end

Wird geladen…

Darstellungsoptionen

mirrorActors wiederholt Teilnehmer unten; wrap bricht Nachrichten um, actorMargin trennt Lebenslinien. Die Nachrichtenreihenfolge bleibt gleich.

Mermaid
---
config:
  sequence:
    mirrorActors: false
    wrap: true
    actorMargin: 60
---
sequenceDiagram
  participant R as Leser
  participant G as Anleitung
  R->>G: Referenz lesen

Wird geladen…

Häufige Fehler

Einen Block offen lassen

Füge für jeden verschachtelten Block end hinzu.

Ungültige Syntax: Korrektur weiter unten

sequenceDiagram
  loop Wiederholung
    A->>B: Anfrage
Mermaid
sequenceDiagram
  loop Wiederholung
    A->>B: Anfrage
  end

Wird geladen…

end als ungeschützten Text verwenden

end ist reserviert; nutze bei Mehrdeutigkeit Anführungszeichen oder Klammern und vermeide reservierte Ids.

Einschränkungen

  • Das Layout bestimmt horizontale Positionen; Lebenslinien lassen sich nicht frei verschieben.
  • Nachrichten folgen dem Quelltext ohne numerische Zeitskala.
  • Menüs hängen vom einbettenden Host ab.

Häufig gestellte Fragen

Was unterscheidet actor und participant?
actor zeichnet eine Person, participant normalerweise einen Kasten und unterstützt weitere Symbole. Beide tauschen Nachrichten aus.
Wie zeichne ich eine Antwort?
Nutze -->> für eine gestrichelte Antwort; ein angehängtes Minus beendet auch die Aktivierung.
Wie zeige ich parallele Arbeit?
Nutze par mit durch and getrennten Zweigen und schließe mit end.