Appearance
Real-time streaming
Sulu pushes updates to the UI over WebSocket. No polling.
What you'll see
- The Launches list shows new launches and updates per-card progress as results stream in.
- The Launch detail page header shows a LIVE pill while the run is in progress and the WebSocket subscription is active.
- The Tree tab updates per-result rows as their statuses change.
Connection model
The frontend uses STOMP over SockJS. The connection auto-reconnects on temporary failures. If the connection drops persistently, the LIVE pill disappears and the page falls back to its last loaded state.
Topics
The frontend subscribes to launch-level topics owned by the backend. You don't need to care about topic names directly — they're fully managed by SuluWebSocket in the frontend client.
What it isn't
- Sulu's WebSocket stream is not for arbitrary client-server messaging; it's a one-way fan-out for launch events.
- It is not authoritative — the REST API is. WebSocket events are notifications. The page state is reconciled with
GETrequests on initial mount.