The Subscriptions engine tracks connected WebSocket clients in process memory (crates/subscriptions/src/channels/ws_manager.rs), so in a multi-instance deployment only the instance holding a client's connection can deliver its notifications.
Subscription resources themselves are database-backed; what's needed is a shared delivery channel (e.g., a message bus or pub/sub fan-out) so resource events on any instance reach clients connected to any other.
Until then, WebSocket subscription delivery is single-instance / sticky-session only (rest-hook channels are unaffected).
Scope
- Introduce a shared delivery channel (message bus / pub-sub fan-out) for subscription notifications
- Ensure resource events on any instance reach WebSocket clients connected to any other instance
- rest-hook channels are already cluster-safe and out of scope
Tracked on the ROADMAP under Next → FHIR Server Capabilities.
The Subscriptions engine tracks connected WebSocket clients in process memory (
crates/subscriptions/src/channels/ws_manager.rs), so in a multi-instance deployment only the instance holding a client's connection can deliver its notifications.Subscription resources themselves are database-backed; what's needed is a shared delivery channel (e.g., a message bus or pub/sub fan-out) so resource events on any instance reach clients connected to any other.
Until then, WebSocket subscription delivery is single-instance / sticky-session only (rest-hook channels are unaffected).
Scope
Tracked on the ROADMAP under Next → FHIR Server Capabilities.