# Mermaid Sequenzdiagramm-Spickzettel

Nachrichten zwischen Beteiligten, der Reihe nach, über die Zeit.

## Beteiligte

Deklariere sie, um die Reihenfolge zu steuern. Nimm actor für die Strichfigur.

```mermaid
sequenceDiagram
  participant Alice
  actor Bob
  Bob->>Alice: Hi Alice
  Alice->>Bob: Hi Bob
```

![Ein Sequenzdiagramm mit einer Teilnehmerbox für „Alice“ und einer Strichfigur für „Bob“, die zwei Nachrichten austauschen.](/diagrams/sequence/participants.svg)

## Nachrichtenpfeile

Eine gefüllte Pfeilspitze ist ein Aufruf, eine offene eine Antwort, eine Linie ohne Spitze ist nur eine Notiz.

```mermaid
sequenceDiagram
  Alice->>John: Hello John
  John-->>Alice: Hi Alice
  John-)Alice: A one-way note
```

![Drei Nachrichten zwischen zwei Lebenslinien: ein durchgezogener Pfeil von Alice zu John, ein gestrichelter zurück und eine dritte Linie ohne Pfeilspitze.](/diagrams/sequence/messages.svg)

## Aktivitäten

Ein Plus öffnet einen Balken auf der Lebenslinie, ein Minus schließt ihn. Der Balken zeigt, wie lange der Aufruf dauerte.

```mermaid
sequenceDiagram
  Alice->>+John: Hello
  John-->>-Alice: Hi
```

![Zwei Nachrichten zwischen Alice und John, mit einem schmalen vertikalen Aktivitätsbalken auf Johns Lebenslinie dazwischen.](/diagrams/sequence/activations.svg)

## Notizen

Notizen hängen an einem Teilnehmer oder schweben über einem Bereich von ihnen.

```mermaid
sequenceDiagram
  Alice->>John: Hello
  Note right of John: He answers later
  Note over Alice,John: A shared note
```

![Ein Sequenzdiagramm mit zwei Notizboxen, einer rechts von Johns Lebenslinie und einer über beide Lebenslinien.](/diagrams/sequence/notes.svg)

## Schleifen

Ein beschrifteter Block, der sich wiederholt. Alles darin läuft einmal pro Durchlauf.

```mermaid
sequenceDiagram
  Alice->>John: Hello
  loop Every minute
    John->>Alice: Still there?
  end
```

![Eine Nachricht von Alice zu John, dann eine Box namens „Every minute“ mit einer Nachricht von John zurück an Alice.](/diagrams/sequence/loop.svg)

## Alternativen

alt und else sind das if/else eines Sequenzdiagramms.

```mermaid
sequenceDiagram
  Alice->>John: Hello
  alt John is a robot
    John-->>Alice: Beep
  else John is a human
    John-->>Alice: Hello there
  end
```

![Eine Nachricht von Alice zu John, dann ein alt-Block mit zwei Zweigen, einer für einen Roboter und einer für einen Menschen.](/diagrams/sequence/alt.svg)

## Die Schritte nummerieren

autonumber setzt eine Nummer an jede Nachricht, der Reihe nach.

```mermaid
sequenceDiagram
  autonumber
  Alice->>John: Hello
  John-->>Alice: Hi
  Alice->>John: Still there?
```

![Ein Sequenzdiagramm mit drei Nachrichten, jede mit einer kleinen nummerierten Plakette am Pfeil.](/diagrams/sequence/autonumber.svg)

## Optionale Schritte

opt markiert einen Block, der stattfinden kann oder nicht.

```mermaid
sequenceDiagram
  Alice->>John: Hello
  opt If he feels like it
    John-->>Alice: Hi
  end
```

![Eine Nachricht von Alice zu John, dann ein optionaler Block mit einer Antwort von John.](/diagrams/sequence/opt.svg)

## In Mernyx zeichnen

Öffne eine .mmd-Datei, verschiebe einen Knoten auf der Canvas, und der Quellcode kommt mit. Nativ auf macOS, ohne Browser dazwischen.
