> For the complete documentation index, see [llms.txt](https://traffic-hunter.gitbook.io/titan/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://traffic-hunter.gitbook.io/titan/learn/fanout.md).

# Fanout

Fanout takes one publication and dispatches it to every matching subscriber. It is useful for notifications, live rooms, and telemetry streams where each active observer should receive the event.

```
                           ┌──▶ subscription 1
SEND /events/updates ──▶ gateway ──▶ subscription 2
                           └──▶ subscription 3
```

## Enable fanout

Set `fanout-mode` in the server's protocol options:

```yaml
titan:
  servers:
    - name: stomp-dispatch
      protocol: stomp
      protocol-options:
        fanout-mode: "virtual"
```

The `titan-dispatch` module supplies the gateway and exporter that connect STOMP `SEND` frames to matching subscriptions. Dispatch workers run on virtual threads, and `virtual` is the only mode.

## Operational boundary

Fanout is live delivery, not durable retention. A subscriber that is offline does not gain replay from its destination name. If consumers must recover historical events after reconnecting, provide persistence outside Titan or choose a durable messaging system.
