Channel-oriented PubSub

A channel-oriented pubsub protocol is a network protocol that enables subscribers to register their interest to channels and get notified when publishers push content to them. It is said to be a decentralized pubsub protocol when multiple participating nodes collaborate while still being resilient to untrustworthy nodes.

As opposed to resource-oriented pubsub protocols (e.g. PubSubHubbub where you need to register your interest to a specific resource) or new resources), a topic-oriented pubsub allows multiple publishers to trigger a notification to the subscribers.

For example, while today you can push updates to a crawler about your resource (in a crawler agnostic manner), you still have to manually let them know individually of the existance of the resource.

Ideally, you’d have a network where we could make crawlers listen to a channel:

pubsub subscribe "new-url"

And publishers publish:

pubsub publish "new-url" "http://example.com/my-new-url.html"

Like a bittorrent network, you want the resiliency of the network to be proportional to the number of participating nodes, and to design the protocol such that the more nodes the better the properties of the system (e.g. latency, delivery guarantees, scalability, etc).

As a foundation, the network needs to be use-case agnostic and enable anyone to build anything without forming an editorial opinion (just being clear about the network properties and the design of incentives).

There are some implementations of channel-oriented pubsub protocols (e.g. IPFS pubsub), but we haven’t yet found a use-case agnostic reusable building block.