sequenceDiagram
actor R as Leser
participant S as Suchdienst
R->>+S: Anleitung suchen
S-->>-R: Ergebnisse liefern Wird geladen…
Mermaid 11.15.0
Sequenzdiagramme zeigen Nachrichten zwischen Teilnehmern. Nutze Flussdiagramme für Entscheidungen und Klassendiagramme für statische Strukturen.
Mit dem Sequenzdiagramm-Generator erstellen →Deklariere Aliasse vor Nachrichten, um die Reihenfolge der Lebenslinien festzulegen.
sequenceDiagram
actor R as Leser
participant S as Suchdienst
R->>+S: Anleitung suchen
S-->>-R: Ergebnisse liefern Wird geladen…
| Syntax | Bedeutung |
|---|---|
| sequenceDiagram / participant / actor / as | Deklariert 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 |
| -x | Durchgezogene Linie mit Kreuz |
| --x | Gestrichelte 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()->>()B | Verbindet 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 / destroy | Erzeugt vor der ersten eingehenden Nachricht und zerstört vor der letzten. |
| Note left of / right of / over A,B | Positioniert Notizen neben oder über Lebenslinien; <br/> erzeugt Umbrüche. |
| loop / alt / else / opt / par / and / critical / option / break / rect / end | Jeder Block endet mit end; else, and und option gehören zum jeweiligen Block. rect erhält eine Farbe. |
| autonumber / autonumber 10 5 | Nummeriert Nachrichten mit optionalem Start und Schritt. |
| box Color Label / end | Gruppiert 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. |
Kurze Ids identifizieren Teilnehmer; Aliasse tragen sichtbaren Text. JSON ändert das Symbol. Deklariere Lebenslinien vor den Nachrichten.
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…
Wähle Pfeile nach deiner Konvention. Offene Pfeile stehen oft für asynchrones Senden; ein Kreuz beendet die Lebenslinie nur zusammen mit destroy.
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…
create steht unmittelbar vor der Erzeugungsnachricht, destroy vor der abschließenden Nachricht. Gleiche Aktivierungen aus.
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…
Schließe Blöcke mit end. else trennt Alternativen, and parallele Zweige, option Wiederherstellungszweige von critical. break zeigt einen Ausnahmeabbruch.
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…
mirrorActors wiederholt Teilnehmer unten; wrap bricht Nachrichten um, actorMargin trennt Lebenslinien. Die Nachrichtenreihenfolge bleibt gleich.
---
config:
sequence:
mirrorActors: false
wrap: true
actorMargin: 60
---
sequenceDiagram
participant R as Leser
participant G as Anleitung
R->>G: Referenz lesen Wird geladen…
Füge für jeden verschachtelten Block end hinzu.
Ungültige Syntax: Korrektur weiter unten
sequenceDiagram
loop Wiederholung
A->>B: AnfragesequenceDiagram
loop Wiederholung
A->>B: Anfrage
end Wird geladen…
end ist reserviert; nutze bei Mehrdeutigkeit Anführungszeichen oder Klammern und vermeide reservierte Ids.