openvibers/openvibe.events STATUS.json

STATUS.json

main 3.0 KB · 42 lines · json

1{
2 "repository": "OpenVibers/OpenVibe.Events",
3 "stage": "alpha",
4 "code": true,
5 "wave": "W3",
6 "plan": "OpenVibe End-to-End Realignment & Implementation Plan, revision 3 (20 Sep 2026)",
7 "runtime": "node 22, express, PostgreSQL 18 (openvibe-sdk/db, async) + Valkey 9",
8 "port": 4300,
9 "domain": "openvibe.events",
10 "contracts": "openvibe-contracts v0.419.0",
11 "sdk": "openvibe-sdk v0.161.0",
12 "shared": "openvibe-shared v4.237.0",
13 "capabilities": [
14 "events.event.publish",
15 "events.subscription.manage",
16 "events.event.read",
17 "events.delivery.admin",
18 "events.app.publish",
19 "events.app.read",
20 "events.app.subscribe"
21 ],
22 "capabilitiesRegistered": true,
23 "deployed": true,
24 "deployment": "Deployed with `sudo ovhost deploy events`: /opt/openvibe.events, unit openvibe-events, 127.0.0.1:4300; public at https://openvibe.events (plan T7: the API and product origin; realtime SSE, health, token-guarded /api/v1/events, /api/v1/subscriptions, /api/v1/checkpoints; /api/v1/deliveries host-local; the old events.openvibe.network address was retired on 2026-10-10); real traffic since 2026-09-23 (Live, Media, Chat, Games, Network and OpenRestream publish; on 2026-09-23 8 subscriptions, held by Search, Tips, VIP, News and Reviews); restore drill passed 2026-09-23",
25 "features": [
26 "durable event store with the canonical envelope",
27 "subscriptions with signed webhook delivery (v1 and v2), retry, dead letters and replay",
28 "priority classes and backpressure",
29 "pull consumers with cursors and checkpoints",
30 "tiered retention (ADR-042 decision 8): hot events past EVENTS_RETENTION_DAYS move to the events_archive replay tier (EVENTS_REPLAY_RETENTION_DAYS, 365; 0 = off), read with the same cursor; monthly NDJSON archive export and restore by operator job (scripts/events-archive.js; local directory or S3-compatible bucket)",
31 "realtime SSE with cursor resume, gap reports and Network tickets",
32 "developer-app publish, read and subscribe with sandbox separation, SSRF-guarded webhooks and project quotas",
33 "hourly project usage rollups (events.usage.recorded)",
34 "queue-operation-64kb billing readings (platform.usage-sample@1) per production project and closed hour, posted to Billing through billing.usage.record (EVENTS_BILLING_INTERVAL_MS, off by default; docs/cutover-events-billing-readings.md)",
35 "redaction tombstones",
36 "per-actor limits (openvibe-sdk/limits; shared on Valkey)",
37 "carrier fabric (ADR-042): the pg-v1 poll beside a valkey-v1 push carrier for QUEUE (streams) and TOPIC (SSE fan-out) an optional nats-v1 NATS Core TOPIC carrier (NATS_URL) and an optional nats-js-v1 JetStream STREAM carrier (NATS_URL, NATS_JETSTREAM; deploy/nats) and an optional cloud-v1 SQS-compatible QUEUE carrier (CLOUD_QUEUE_URL; SigV4, no dependency), with a placement planner, per-key pinning, delivery_placements history and a GET /api/v1/placement explain API; EVENTS_CARRIERS[_DISABLED] switches it",
38 "at_most_once delivery semantics (a failed attempt is final)"
39 ],
40 "updated": "2026-11-13"
41}
42