The Web Stream Message Protocol (WSMP) defines how a web stream is carried between nodes. A web stream is a resource that provides data to many subscribers in the form of a replicated log of messages. The channel between publisher and subscriber is bidirectional and symmetric: what a publisher emits may depend on messages its subscribers send, so a stream is a conversation rather than a broadcast.
Web streams carry both stream kinds the Scene Composition Protocol uses — the structural stream and the parameter stream. The same abstraction composes into data pipelines, where a stage consumes web streams and publishes another, and it simplifies distributing updates to a replicated store.
In a peer-to-peer network#
WSMP rides on Helia / IPFS: libp2p pubsub topics per realm and per stream for live delivery, and content-addressed blocks for replay, so a late-joining or reconnecting node can catch up from any peer that still holds the blocks rather than from an origin. Because every node is ephemeral, a stream is not hosted anywhere in particular — it exists for as long as some subset of peers still carries it, with the availability characteristics described under Peer-to-Peer Network.
The earlier design proposed building on Aeron — a server-oriented messaging system chosen for its throughput and latency — and adding a symmetric protocol, simpler connection establishment, and a persistent backing store for replay. That framing predates the peer-to-peer protocol and is kept below as prior art only.
External links#
Similar concepts and prior art:
- libp2p — concepts and the gossipsub spec, the pubsub layer WSMP would ride on
- Publish–subscribe pattern and gossip protocols on Wikipedia
- Aeron — the low-latency replicated-log transport the legacy design proposed building on
- Apache Kafka — replicated logs with replay, broker-based
- WebTransport, WebRTC, and MQTT — browser-reachable and lightweight transports