```plaintext %% ntfy-Discord Bridge (ADR-0022) %% Sequence diagram showing message flow and transformation sequenceDiagram autonumber participant S as Notification Source
(CI/Alertmanager) participant N as ntfy
Notification Hub participant B as ntfy-discord
Go Bridge participant D as Discord
Webhook Note over S,N: Events published to ntfy topics S->>N: POST /gitea-ci
{title, message, priority} Note over N,B: SSE subscription for real-time N-->>B: SSE JSON stream
{topic, message, priority, tags} Note over B: Message transformation rect rgb(240, 240, 240) B->>B: Map priority to embed color
urgent=red, high=orange
default=blue, low=gray B->>B: Format as Discord embed
{embeds: [{title, description, color}]} end B->>D: POST webhook URL
Discord embed format Note over B: Hot-reload support rect rgb(230, 245, 230) B->>B: fsnotify watches secrets B->>B: Reload config without restart end Note over B,D: Retry with exponential backoff alt Webhook fails B-->>B: Retry (2s, 4s, 8s...) B->>D: Retry POST end D-->>D: Display in channel ```