Google Blogoscoped

Thursday, August 28, 2008

SUP, a Format to Tell Which Feeds Updated

SUP stands for Simple Update Protocol (officially, anyway, though it’s perhaps an acronym or backronym for “what’s up” aka “’sup”). It’s a JSON-based meta format for RSS/ Atom feeds useful for websites that deliver a large number of feeds, like a blogging platform, so that services subscribing to that site’s RSS feeds only need to download a single file to check for updates, and then download the other individual feeds as needed. SUP was invented by the ex-Google employees Paul Buchheit and Gary Burd of (recently redesigned) social feed aggregator Friendfeed. There is no official documentation at the moment outside of the Python source.

Friendfeed’s aim in introducing the format is to decrease the load in polling so many feeds from all over the web all the time (a polling that’s typically done whether or not the feed changed since last time). After all, that’s one of Friendfeed’s problems, too. “FriendFeed’s user base has grown quite a bit since launch, and our servers now download millions of feeds from over 43 services every hour,” Paul Buchheit writes in a blog post announcing SUP. A SUP feed can thus serve as first stop for feed readers to see if a feed changed, and the SUP file will only include the changes since the last SUP in a specified frequency – like 3 minutes – was published. (I remember Google’s Blogger once had such a “what’s new” file in XML format, but I’m not sure they ever attempted to turn it into something like a standard.)

So, all of this means SUP is not a competition to RSS feeds, but rather it’s a level above “watching” over it to make site updates be known faster and easier to other sites, due to a lowered load for publisher and reader programs. For sites with only a single feed or two (like for instance) there seems to be no immediate need to support SUP (I’m not sure if it would be a speed win with Friendfeed). “[T]he benefits are most significant when the SUP feed covers a large number of other feeds,” Paul says. On the other hand, from an aggregator’s point of view the SUP format also requires you to set up a system that doesn’t miss out on its polling in the defined frequency, or else your program may miss feed update information (a look at the SUP’s time stamp could help find out about this). Paul in an email says, “SUP consumers must be somewhat intelligent when consuming feeds in order to poll at the appropriate frequency, but our goal was to make things as simple as possible for SUP producers in the hopes that most sites will be able to quickly implement a SUP feed.”

As for the syntax itself, why the choice of JSON over, say, XML? In popular browsers, XML can be checked for well-formedness and also displays somewhat formatted when directly opening it. Paul comments that JSON (JavaScript Object Notation) “is a very simple and common data format that is now supported by just about every common language ... It is also very compact, which is a real advantage for SUP feeds that may have thousands of entries. An XML-based SUP feed could be easily generated, but it’s not clear that there would be any advantage (and it could easly end up being 3-5 times as large).”

At this time, not even Friendfeed itself has SUP reading support (they do have a SUP feed), but Paul says “it should be ready soon.” As SUP is so new it’s hard to tell who else will adopt the format. Paul states:

I’ve spoken with several sites, but we’re not yet ready to make any announcements.

We would like for everyone to support SUP, however Blogger already pings several blog ping services, so the benefit may not be as significant as it is with other non-blog services. One other issue with blog feeds is that many people send their feeds through Feedburner, which introduces additional delay (meaning that even after a new blog post is published, it may not appear in the RSS feed for some time).

A great example of a service that would really benefit from SUP is Google Reader. The Reader shared items feeds have “secret” urls that Google does not want to publish, so a traditional blog pinging service is not viable for them. Using SUP, they could easily notify feed consumers such as FriendFeed of which feeds have been updated without having to disclose any of the secrety urls.


Blog  |  Forum     more >> Archive | Feed | Google's blogs | About


This site unofficially covers Google™ and more with some rights reserved. Join our forum!