You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/docs/protocol/kernel/realtime-protocol.mdx
+11-4Lines changed: 11 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -104,7 +104,7 @@ ObjectStack supports two real-time protocols:
104
104
105
105
### Connection Endpoint
106
106
107
-
The discovery endpoint advertises the realtime route when the realtime service is registered:
107
+
The discovery endpoint reports the realtime service honestly (ADR-0076 D12): because the in-process realtime service mounts **no** HTTP/WS surface today, **no `routes.realtime` entry is advertised** — an advertised route with no handler would 404. The service itself appears in `services.realtime` as `degraded` with `handlerReady: false` when registered:
108
108
109
109
```http
110
110
GET /.well-known/objectstack
@@ -114,14 +114,21 @@ GET /.well-known/objectstack
114
114
{
115
115
"routes": {
116
116
"data": "/api/v1/data",
117
-
"metadata": "/api/v1/meta",
118
-
"realtime": "/api/v1/realtime"
117
+
"metadata": "/api/v1/meta"
118
+
},
119
+
"services": {
120
+
"realtime": {
121
+
"enabled": true,
122
+
"status": "degraded",
123
+
"handlerReady": false,
124
+
"message": "In-process event bus only — no HTTP/WS realtime surface is mounted"
125
+
}
119
126
}
120
127
}
121
128
```
122
129
123
130
<Callouttype="info">
124
-
The discovery `routes.realtime` value is an HTTP path (`/api/v1/realtime`), not a `wss://` URL. A WebSocket upgrade endpoint is part of the planned transport (`IRealtimeService.handleUpgrade()`) and is not yet served.
131
+
A WebSocket upgrade endpoint is part of the planned transport (`IRealtimeService.handleUpgrade()`) and is not yet served. When it lands, discovery will advertise `routes.realtime` again — until then clients must treat `services.realtime.handlerReady: false` as "no wire transport" (see #2462).
0 commit comments