openvibers/openvibe.realtime README.md

README.md

main 3.5 KB · 79 lines · markdown

1# OpenVibe.Realtime
2
3> Browser delivery plane for events: authorised WS/SSE topics with cursors, resume and presence.
4
5**Archived 2026-09-25** (roadmap WS-F task 6): read-only. For browser realtime use [OpenVibe.Events](https://github.com/OpenVibers/OpenVibe.Events) `GET /realtime/stream` (SSE, authorised topics, cursor resume) through `openvibe-sdk/realtime`.
6**Status:** closed by [ADR-005](https://github.com/OpenVibers/OpenVibe.Contracts/blob/main/docs/adr/ADR-005-realtime.md) (2026-09-22): browser realtime runs inside [OpenVibe.Events](https://github.com/OpenVibers/OpenVibe.Events) (`/realtime/stream`, SSE with cursor resume). This repository stays as the decision record and is reopened only if measured load needs an independently scaled delivery process.
7**Domain:** `realtime.openvibe.network`
8**Plan:** OpenVibe End-to-End Realignment & Implementation Plan, revision 3 (20 Sep 2026), §2 and §6.2.
9**License:** AGPL-3.0 (same as every OpenVibe service).
10
11## Purpose
12
13Reserved for the Realtime runtime if it ever becomes operationally useful to split it out of OpenVibe.Events. ADR-005 decided against a split for now: the Realtime gateway runs inside OpenVibe.Events (deployed, `https://events.openvibe.network/realtime/stream`), and this repository holds the decision record and nothing else.
14
15## Owns
16
17- (when split) topic delivery, cursor/resume, presence, fanout transport
18
19## Does not own
20
21- durable event storage (Events)
22- media/game transport packets
23
24## Planned surfaces
25
26- WS/SSE gateway
27
28## Data (authority tables / families)
29
30- none of its own (checkpoints live in Events)
31
32## Capabilities and events
33
34- `realtime.subscribe`
35
36Events: `delivery of authorised projections of Events topics`
37
38## Depends on
39
40- OpenVibe.Events
41- OpenVibe.Network
42
43## Acceptance (must be true before "done")
44
45- reconnect from a known cursor yields the complete authorised sequence
46- a guessed private topic yields no data
47
48## Bootstrap / extraction source
49
50Extract from product-specific fanout patterns (Live's WebSocket layers) once Events exists.
51
52## Decision
53
54ADR-005 (Realtime Topics and Cursor/Resume Model, accepted 2026-09-22) keeps realtime inside OpenVibe.Events. Do not add code here unless a new ADR reopens the split on measured load.
55
56Not done yet: `realtime.openvibe.network` still shows an OpenVibe.Sites placeholder that advertises this product, and this GitHub repository is not archived (Host compatibility register C-82).
57
58## Launch rule
59
60This repository does not make the product real, and the domain keeps its placeholder page on
61[OpenVibers/OpenVibe.Sites](https://github.com/OpenVibers/OpenVibe.Sites) until all of the
62following exist here (plan §12.12):
63
641. an owning runtime with health/readiness endpoints and observability;
652. canonical identity/auth integration (OpenVibe.Network subjects, scoped service principals);
663. server-rendered or static public routes that are useful without JavaScript;
674. real persistence and end-to-end workflows;
685. capability and event registration against `OpenVibe.Contracts`;
696. a migration/seed strategy, a security/threat review, and sitemap/robots/feed behaviour;
707. acceptance tests proving the advertised functionality.
71
72The launch release removes the domain from `OpenVibe.Sites/sites.json`, switches routing and
73registers maturity in the ecosystem registry atomically. A placeholder is never counted as an
74implemented service.
75
76---
77
78Part of the [OpenVibe network](https://openvibe.network). Built in the open by [OpenVibers](https://github.com/OpenVibers).
79