Realtime Model
Understand the websocket transport, workspace fanout, HA bridge behavior, and why some routes are HTTP while others are event-driven.
Realtime Model
Noderax uses websocket-backed realtime transport for live updates such as:
- node install progress
- metrics ingestion updates
- node status transitions
- terminal streaming
Realtime transport is websocket-backed through Socket.IO. The transport path and the logical namespace are different layers.
Noderax separates realtime concerns into namespaces such as general realtime, terminal transport, and agent-specific realtime coordination.
In installed HA mode, correctness depends on room membership, immediate event emission, and Redis-based cross-instance propagation.
Important transport notes
- realtime is not a simple
GET /realtimeHTTP route - websocket transport rides on the Socket.IO transport path
- namespace-level semantics sit above the base transport
What belongs on realtime versus HTTP
HA behavior
In the installed runtime, websocket connections may land on either api-a or
api-b. That means realtime only feels correct if:
- events are published immediately
- workspace-scoped rooms are joined correctly
- cross-instance Redis bridge fanout forwards events between API instances
That HA model is documented here because it affects both debugging and API integration expectations.
Operator-visible consequences
Node install progress
Bootstrap progress only feels correct when workspace fanout, Redis bridging, and immediate event emission all work together.
Live metrics
The web UI depends on realtime events being merged into the active metrics query cache, not only on periodic polling.
Terminal sessions
Terminal transport adds a more sensitive websocket path on top of auth, workspace access, agent connectivity, and root-access policy.