Sequence: Self-Messages with Notes

A self-message wrapped in a note inside a conditional block — useful for annotating a retry loop, an internal computation, or any step where a participant acts on itself without messaging anyone else.

sequence-self-messages-with-notes.mmd
sequenceDiagram
  participant User
  participant Main as Main Process
  participant Renderer
  participant Timer as 3s Fallback Timer
  User->>Main: CMD+W
  Main->>Main: event.preventDefault()
  Main->>Renderer: WINDOW_CLOSE_REQUESTED
  Main->>Timer: Start 3s timer
  alt Multiple panels
    Renderer->>Renderer: closePanel(focusedId)
    Note over Renderer: Panel removed
    Note over Renderer: No confirmCloseWindow!
    Timer-->>Main: 3s elapsed → window.destroy()
  else Single panel
    Renderer->>Renderer: closePanel(lastId)
    Note over Renderer: Stack becomes []
    Renderer->>Renderer: Auto-select fires → new panel created!
    Note over Renderer: Panel reopens
    Timer-->>Main: 3s elapsed → window.destroy()
  end
Output
Sequence diagram, Zombie Mermaid alt [Multiple panels] [Single panel] CMD+W event.preventDefault() WINDOW_CLOSE_REQUESTED Start 3s timer closePanel(focusedId) 3s elapsed → window.destroy() closePanel(lastId) Auto-select fires → new panel created! 3s elapsed → window.destroy() Panel removed No confirmCloseWindow! Stack becomes [] Panel reopens User Main Process Renderer 3s Fallback Timer

More Sequence diagram examples