RSS Isn’t Dead, People Just Don’t Get It

I’m sorry, but RSS feeds are way too slow. I know this first-hand. As part of my job here at TechCrunch, I monitor a lot of RSS feeds for breaking news. We also produce our own feed and I can see how quickly it propagates to various feed readers and feed-powered news aggregation services. The lag time between posting a story and seeing it pop up in the RSS feed is usually a few minutes, and then it can take another 10 to 15 minutes or so for it to appear in something like Google Reader.

via Speeding Up RSS .

The problem with this whole article is that it totally misses what RSS is and how it works. RSS is a data format, a very simple XML file. It isn’t slow or fast, it’s just a chunk of well-formated data. RSS feeds are produced by many systems at the very moment of publication. The feed for this very site will be updated as soon as I click the publish button. But the RSS feed is just an XML file. No speed is involved, just a file. Got it yet?

The lag the writer above seems to see is just a function of the systems that consume the RSS feeds and really has nothing to do with the RSS itself. As commonly implemented RSS is used as part of a ‘pull’ system. A remote client pulls the XML file periodically from the server. Servers and clients usually limit how often the files are pulled in order to conserve bandwidth. The idea behind RSS pull systems is that the client decides how often to poll servers for new updates. If you want faster updates, just crank up how often your client hits the server. Of course many servers will ban you if you try to update too often.

Now, I can easily imagine a system where the RSS feed is pushed out to known clients. Because the RSS specification is open and under a Creative Commons license and extensible through XML namespaces, it would just take a bit of design and programming to get RSS into shape and come up with a scheme that pushes out the updated RSS to a client that parses the XML into those stories we love. The client should be something lightweight and widgety. Once installed it needs to register with the server, giving its IP, and declare what feeds it wants pushed out. Then something new gets published and it gets sent right out to the client, queuing the update if the client is not available. As a bonus, the server can still dish out the very same RSS feed to any pull clients that want to consume it.

See nothing to it. RSS isn’t slow, it just isn’t doing what you want it to do, so go ahead and fix it.