openvibers/openvibe.realtime README.md
README.md
| 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 | |
| 13 | Reserved 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 | |
| 36 | Events: `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 | |
| 50 | Extract from product-specific fanout patterns (Live's WebSocket layers) once Events exists. |
| 51 | |
| 52 | ## Decision |
| 53 | |
| 54 | ADR-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 | |
| 56 | Not 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 | |
| 60 | This 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 |
| 62 | following exist here (plan §12.12): |
| 63 | |
| 64 | 1. an owning runtime with health/readiness endpoints and observability; |
| 65 | 2. canonical identity/auth integration (OpenVibe.Network subjects, scoped service principals); |
| 66 | 3. server-rendered or static public routes that are useful without JavaScript; |
| 67 | 4. real persistence and end-to-end workflows; |
| 68 | 5. capability and event registration against `OpenVibe.Contracts`; |
| 69 | 6. a migration/seed strategy, a security/threat review, and sitemap/robots/feed behaviour; |
| 70 | 7. acceptance tests proving the advertised functionality. |
| 71 | |
| 72 | The launch release removes the domain from `OpenVibe.Sites/sites.json`, switches routing and |
| 73 | registers maturity in the ecosystem registry atomically. A placeholder is never counted as an |
| 74 | implemented service. |
| 75 | |
| 76 | --- |
| 77 | |
| 78 | Part of the [OpenVibe network](https://openvibe.network). Built in the open by [OpenVibers](https://github.com/OpenVibers). |
| 79 |