openvibers/openvibe.live Commits
Docs: the go-live flow is Events then Network's consumer (C-85 leftovers) (#97)
Changes
@@@ -60,9 +60,7 @@ OV_OAUTH_CLIENT_SECRET=# OpenVibe.Events (durable events): stream lifecycle is published through Live's outbox with the# OAuth client above (grant events.event.publish). Unset = off. EVENTS_PUBLISH=off also disables it.#EVENTS_URL=http://127.0.0.1:4300--# Go-live notifications (compatibility register C-85): `events` leaves them to Network's live.stream.started--# consumer (no direct POST /internal/events/stream-live, no fallback push); only while EVENTS_URL publishes.--# Unset = both paths, as before.++# Go-live notifications come only from Network's live.stream.started consumer (compatibility register C-85).# OpenRestream (roadmap Wave 7): the ingest/restream authority. Unset = off, and every stream slot# is ingested by Live exactly as before. When set, an admin can switch one slot at a time@@@ -130,15 +130,11 @@└──────────────────────────────────────────────────────┘</code></pre><h3>Event Flow: Stream Goes Live</h3>--<pre><code>1. Streamer calls POST /api/streams (OpenVibe.Live)--2. OpenVibe.Live creates stream record, starts media endpoint--3. OpenVibe.Live calls POST /internal/events/stream-live (openvibe.network)--4. openvibe.network Discord bot sends embed to #alerts channel (with dedupe)--5. openvibe.network creates STREAM_LIVE notifications for:-- - All followers of the streamer-- - Users opted into "all live" alerts--6. Push notifications fire via Web Push (VAPID)--7. Fallback: OpenVibe.Live sends direct webhook if openvibe.network unreachable</code></pre>++<pre><code>1. Streamer goes live (Go-Live API, RTMP, WHIP or the OpenRestream mirror)++2. OpenVibe.Live creates the stream record and publishes live.stream.started to OpenVibe.Events++3. openvibe.network's Events consumer tells the streamer's followers (its own follows):++ inbox notification, Web Push (VAPID), email and Discord, at most once per streamer per window++4. A go-live while openvibe.network is down waits in OpenVibe.Events and is delivered on retry</code></pre><h3>WebSocket Services</h3><table class="doc-table">
@@ -60,9 +60,7 @@ OV_OAUTH_CLIENT_SECRET=
@@ -60,9 +60,7 @@ OV_OAUTH_CLIENT_SECRET=
# OpenVibe.Events (durable events): stream lifecycle is published through Live's outbox with the
# OpenVibe.Events (durable events): stream lifecycle is published through Live's outbox with the
# OAuth client above (grant events.event.publish). Unset = off. EVENTS_PUBLISH=off also disables it.
# OAuth client above (grant events.event.publish). Unset = off. EVENTS_PUBLISH=off also disables it.
#EVENTS_URL=http://127.0.0.1:4300
#EVENTS_URL=http://127.0.0.1:4300
-# Go-live notifications (compatibility register C-85): `events` leaves them to Network's live.stream.started
-# consumer (no direct POST /internal/events/stream-live, no fallback push); only while EVENTS_URL publishes.
-# Unset = both paths, as before.
+# Go-live notifications come only from Network's live.stream.started consumer (compatibility register C-85).
# OpenRestream (roadmap Wave 7): the ingest/restream authority. Unset = off, and every stream slot
# OpenRestream (roadmap Wave 7): the ingest/restream authority. Unset = off, and every stream slot
# is ingested by Live exactly as before. When set, an admin can switch one slot at a time
# is ingested by Live exactly as before. When set, an admin can switch one slot at a time
@@ -130,15 +130,11 @@
@@ -130,15 +130,11 @@
└──────────────────────────────────────────────────────┘</code></pre>
└──────────────────────────────────────────────────────┘</code></pre>
<h3>Event Flow: Stream Goes Live</h3>
<h3>Event Flow: Stream Goes Live</h3>
-<pre><code>1. Streamer calls POST /api/streams (OpenVibe.Live)
-2. OpenVibe.Live creates stream record, starts media endpoint
-3. OpenVibe.Live calls POST /internal/events/stream-live (openvibe.network)
-4. openvibe.network Discord bot sends embed to #alerts channel (with dedupe)
-5. openvibe.network creates STREAM_LIVE notifications for:
- - All followers of the streamer
- - Users opted into "all live" alerts
-6. Push notifications fire via Web Push (VAPID)
-7. Fallback: OpenVibe.Live sends direct webhook if openvibe.network unreachable</code></pre>
+<pre><code>1. Streamer goes live (Go-Live API, RTMP, WHIP or the OpenRestream mirror)
+2. OpenVibe.Live creates the stream record and publishes live.stream.started to OpenVibe.Events
+3. openvibe.network's Events consumer tells the streamer's followers (its own follows):
+ inbox notification, Web Push (VAPID), email and Discord, at most once per streamer per window
+4. A go-live while openvibe.network is down waits in OpenVibe.Events and is delivered on retry</code></pre>
<h3>WebSocket Services</h3>
<h3>WebSocket Services</h3>
<table class="doc-table">
<table class="doc-table">