Home > Archive >  2009 >  July >  10

Google's Pubsubhubbub

Friday, July 10, 2009 by Dave Winer.

A picture named bass.jpgIt's got a weird name, and I found the spec somewhat hard to understand. Permalink to this paragraph

But thanks to Brad Fitzpatrick and Brett Slatkin from the team at Google that implemented it, I now understand what Pubsubhubbub does. Permalink to this paragraph

It allows you to receive updates of RSS feeds without polling.  Permalink to this paragraph

It makes it possible to build a distributed Twitter-like system with components that are not made by a single company, and with servers not run by a single company.  Permalink to this paragraph

It makes instant updates possible for RSS. Permalink to this paragraph

It makes it possible to build a Twitter without the limitations of Twitter. (For example, no 140-character limit, the ability to handle enclosures, categories without #hashtags.) Permalink to this paragraph

The protocol it defines seems reasonable (I'll have to implement one side of it to be sure) and because it has the backing of Google, one of a very small number of companies with the resources to make something like this work, it has a chance of gaining traction and when it does, scaling. Permalink to this paragraph

In fact, it's part of one of the components I asked Google to implement in a blog post here on May 28, as Brett pointed out in our phone conversation earlier today. It's nice to see that at least a few people at Google see the possibility of assembling a Twitter-like notification system with the Small Pieces, Loosely Joined approach.  Permalink to this paragraph

Drilling in one more level, here's how it flows. Permalink to this paragraph

1. Any feed that wants to participate in this network must add a bit to the feed that indicates which ping server is handling notifications on its behalf. There can be more than one. Permalink to this paragraph

2. When a subscribing application initially parses the feed and notices this bit, it sends a notification to each server saying "I want to be notified when this feed updates." Permalink to this paragraph

3. When the feed updates, it pings each of the servers it has registered with saying "I have updated." Permalink to this paragraph

4. The server then pings each of the subscribers saying "He updated." Permalink to this paragraph

The subscriber must have a known address, therefore must not be behind a firewall or NAT. For client apps, they need some kind of proxy that has a known address. This limit is signficant, but certainly not insurmountable. Permalink to this paragraph

I would like to see them understand RSS syntax in addition to Atom syntax, and I understand from the spec that that is forthcoming.  Permalink to this paragraph

Update: http://superfeedr.com/ has also implemented this protocol. Permalink to this paragraph

   Recent stories

A picture named dave.jpgDave Winer, 54, pioneered the development of weblogs, syndication (RSS), podcasting, outlining, and web content management software; former contributing editor at Wired Magazine, research fellow at Harvard Law School, entrepreneur, and investor in web media companies. A native New Yorker, he received a Master's in Computer Science from the University of Wisconsin, a Bachelor's in Mathematics from Tulane University and currently lives in Berkeley, California.

"The protoblogger." - NY Times.

"The father of modern-day content distribution." - PC World.

One of BusinessWeek's 25 Most Influential People on the Web.

"Helped popularize blogging, podcasting and RSS." - Time.

"The father of blogging and RSS." - BBC.

"RSS was born in 1997 out of the confluence of Dave Winer's 'Really Simple Syndication' technology, used to push out blog updates, and Netscape's 'Rich Site Summary', which allowed users to create custom Netscape home pages with regularly updated data flows." - Tim O'Reilly.


Dave Winer Mailto icon

© Copyright 1994-2009 Dave Winer Mailto icon.

Last update: 7/10/2009; 8:29:31 PM Pacific. "It's even worse than it appears."

Click here to view blogs commenting on  RSS 2.0 feed.