Proposals and decisions

Changes to the platform's public surface — a contract, a capability, an event type, or a major product policy — are proposed in the open and recorded as an architecture decision record (ADR) in OpenVibe.Contracts.

  1. Propose. Open an issue or pull request on OpenVibe.Contracts describing the change, who owns it, and who consumes it. A service that introduces capabilities ships proposals in its own repository (docs/capabilities-proposal/, docs/service-manifest-proposal.json) — this portal's are in its repository.
  2. Decide. An accepted proposal becomes an ADR with context, decision, alternatives, migration consequences, rollback and acceptance tests.
  3. Release. The contract lands in a tagged openvibe-contracts release; CI in every consuming service checks it (openvibe-contracts-check). The SDK wraps it in the same or the next release, and these docs regenerate from the new pins.

Decision record

The ADRs in openvibe-contracts v0.33.0:

DecisionStatus
ADR-001: Canonical subject IDs and legacy identity mappingAccepted, implemented 2026-09-22
ADR-002: Contract repository and compatibility policyAccepted, implemented 2026-09-22 (openvibe-contracts v0.1.0+)
ADR-003: Service/app principal authentication and capability grantsAccepted, implemented 2026-09-22
ADR-004: Durable event store, outbox/inbox and delivery semanticsAccepted 2026-09-22; implementation in progress (OpenVibe.Events)
ADR-005: Realtime topics, cursor/resume and whether OpenVibe.Realtime existsAccepted 2026-09-22: realtime runs inside OpenVibe.Events
ADR-006: Media object, location and namespace modelAccepted 2026-09-22; implementation in progress (OpenVibe.Media Wave 4)
ADR-007: Logical data ownership and database technologyAccepted 2026-09-22
ADR-008: Shared package publication and release manifestsAccepted 2026-09-22; implementation in progress (OpenVibe.Shared)
ADR-009: Live versus OpenRe boundaryAccepted 2026-09-23. OpenRe.Stream deployed the same day (RTMP ingest + restream; WHIP, SFU and JSMPEG not yet ported). No slot has moved: per-slot cutover waits for the ingest DNS name, the public RTMP port and a broadcaster window.
ADR-010: Chat versus Live/Community boundaryAccepted and executed 2026-09-23 (cutover 02:03 UTC). Governs Wave 6.
ADR-011: Community paste and comment ownership migrationAccepted and executed 2026-09-22
ADR-012: Billing vs loyalty, credits and currency classificationAccepted 2026-09-22. Gates Wave 8 (OpenVibe.Billing), Wave 9 (Tips) and Wave 10 (VIP).
ADR-013: Mod manifest, trust and sandbox/resource modelAccepted 2026-09-23. Gates Wave 12 (mods) and Wave 21 Stage C (sandboxed user code).
ADR-014: Developer project, tenant and quota modelAccepted 2026-09-23. Gates Wave 20 (Codes) and Wave 21 (Host tenants).
ADR-015: AI workflow and publication ownership boundaryAccepted 2026-09-23. OpenVibe.AI deployed the same day (loopback, port 4700); Live's switch
ADR-016: Active client update safety and the supported mixed-version windowAccepted 2026-09-23. Governs Track R.
ADR-017: Home of the source registry and ingestion runtimeAccepted 2026-09-23. Gates Wave 14.
ADR-018: Home of the search index and query contractAccepted 2026-09-23. Gates Wave 14.
ADR-019: Home of the shared publishing packagesAccepted 2026-09-23. Gates Wave 15.
ADR-020: Notification delivery ownershipAccepted 2026-09-23. Wave 3 follow-through.
ADR-021: Analytics ownership and privacy boundsAccepted 2026-09-23. Contract now; extraction decision at Wave 22.
ADR-022: Moderation and policy consoleAccepted 2026-09-23. Revisit at Wave 12.
ADR-023: First-party client surfaces and their homeAccepted 2026-09-23. Needed by Wave 18.
ADR-024: Theme authority boundary between Network and OpenVibe.SharedAccepted 2026-09-23.
ADR-025: Marketplace and commerce scopeAccepted 2026-09-23. Binding on Wave 19 (Trade).
ADR-026: Producer redaction of its own events (`payload.redacts`)Accepted 2026-09-23; implemented in OpenVibe.Events (`server/redaction.js`, `server/store.js`,
ADR-027: Tools platform APIAccepted 2026-09-23. Contracts in openvibe-contracts v0.33.0; the registry and run routes