PubSub, the short name for “Publish-Subscribe”, is an XMPP technology, bringing instant or “real-time” publication, notification and distribution of content to the internet.
The PubSub technology is quite exhaustively described in this specification: XEP-0060: Publish-Subscribe .
PubSub enables a user or machine to publish information in a tree-organized structure, much like a web server would do with static content (folders and HTML files). PubSub instantly sends notifications (only meta-data) or the full content (which we name “payload”) to all the subscribers. XMPP users (machines or humans) can subscribe to these nodes, and receive instant updates.
This general broadcast mechanism is an instant Push technology, enabling a PubSub server to send only what is necessary, as soon as it has updates.
Push avoids the (too) widely-used polling technique and its drawbacks: updates lag and server overload. The most known example is RSS: myriads of RSS clients constantly poll an RSS feed, most of the time for nothing, because there is no update.
The first draft of the PubSub specification has been published a few years ago (2003), and has been widely peer reviewed since. Although we have had few implementations in the recent years, we now have seen real-world examples of this technology silently appear on the internet.
Here is a short and non-exhaustive review:
- WordPress: WordPress.com is a massive blog hosting website, based on the free/opensource blog engine (WordPress.org). WordPress.com is using PubSub at im.wordpress.com , each blog and comment is instantly published on PubSub, and these contents instantly sent to the subscribers.
- BBC: BBC is the well known british TV and radio broadcasting company, respected for the quality of their programs. BBC is broadcasting the TV and radio programs to all the users by using PubSub.
- Apple: Apple, the computer, phone and software maker, has put up an infrastructure and API that enables applications (E-mail, chat, etc.) to send notifications to iPhones.
- Seesmic: Seesmic is a video-based social network. They use PubSub as a real-time message notifier service, for users and peers.
- Yahoo!: FireEagle is a Yahoo! service for user geolocation sharing, using also OAuth. PubSub is here used to broadcast geolocation to users and third party applications.
- Notifixious: Superfeedr is a real-time bloggosphere notifications service. Superfeedr is a real-time feed fetching and parsing infrastructure. PubSub is the core or realt-ime content distribution.
- Identica: the opensource web site for federated microblogging, based on the OpenMicroBlogging specification, is using Laconica. PubSub is used here as the message broker, along with ATOM.
WordPress, BBC, SuperFeedr are all using ejabberd’s mod_pubsub, which will gain improvements on the soon-to-be-released ejabberd 2.1.
The PubSub technology is arising, slowly, but surely, as businesses understand and leverage their core activity with PubSub’s intrinsic advantages.
Expect more innovative projects to come to life in the coming months… Especially from ProcessOne! Stay tuned.