# OpenVibe.Events > The OpenVibe network's event bus: publish once and every subscriber gets it signed, retried and replayable, by webhook, pull or realtime stream. OpenVibe.Events is the durable event backbone of the OpenVibe network. Every authoritative service writes its domain mutation and its outbox event in one transaction, a relay publishes them here, consumers keep inbox/idempotency receipts, and browsers get authorized, resumable projections over the realtime stream; an event exists if and only if the change it describes committed. Publishing: POST https://openvibe.events/api/v1/events takes one event envelope or up to a hundred at a time, stored atomically and given one global order. A service may only publish the event types its own namespace owns, a repeat of an event id is answered 200 with duplicate: true and is never stored twice, and a producer can redact what it published: the named events become tombstones that every read path serves from then on. Subscriptions and delivery: a subscription is a topic pattern such as media.vod.* and an endpoint (http on 127.0.0.1 or an OpenVibe host). Each delivery is an HMAC-signed POST (X-OpenVibe-Signature-V2, over the timestamp and the raw body, inside a five-minute window) and answers 2xx once the event is safely stored; anything else is retried with backoff and, after the last attempt, waits in a dead-letter queue that operators replay. Consumers can also pull in order instead, with an opaque cursor that crosses the retention tiers without a gap. Developer apps: an app signs in through OpenVibe.Network (client credentials, audience openvibe.events) and publishes, reads and subscribes on the same routes under the events.app.* capabilities, scoped to its own project and environment. Sandbox events never reach production, app webhook endpoints must be public HTTPS addresses, and per-project quotas are enforced here. Realtime: browsers follow topics over server-sent events at https://openvibe.events/realtime/stream with a one-use ticket from OpenVibe.Network; a reconnect resumes from its last cursor, or is told about the gap when the position is too old to replay. Subject-visible events reach only the person they are about, and internal events never reach a browser. The guide is https://github.com/OpenVibers/OpenVibe.Events#readme. The API and the realtime gateway are at https://openvibe.events; the product home is https://openvibe.events/. ## Start here - [OpenVibe.Events home](https://openvibe.events/index.md) - [What shipped](https://openvibe.events/updates.md): every change deployed, newest first - [Guide](https://github.com/OpenVibers/OpenVibe.Events#readme): the README: publishing, subscriptions, developer apps and realtime - [Source code](https://github.com/OpenVibers/OpenVibe.Events) ## Optional - [Sitemap](https://openvibe.events/sitemap.xml) - [robots.txt](https://openvibe.events/robots.txt) - [API and realtime](https://openvibe.events/index.md): the JSON API and the realtime gateway