Versioned Feeds

I’ve been working on an RSS reader for NetCaptor for a while now, experimenting with direct aggregation and also the Bloglines web services API.

Most RSS implementations waste a ton of bandwidth. Even if you use a conditional GET, you still have to download an entire feed when a single item changes.

It makes me wish feeds had a version number, and each post is assigned to one of those versions. This could just be embedded in the RSS file itself… something like:

<channel>
<version>1263</version>

</channel>

Everytime a post is added to a feed, the feed version is incremented, and the post is assigned to that new feed version.

<item>
<version>1263</version>

</item>
<item>
<version>1262</version>

</item>
<item>
<version>1261</version>

</item>

Clients would query the RSS server passing the last version the client downloaded. The server would return any new or updated items only. Not only would this save bandwidth, but the aggregator would automatically know which items should be flagged as new instead of having to compare permalinks or guids.

Client would download a feed with a URL like…

…and the returned feed would only return updated items since version 1261.

I know, I know. This wouldn’t work well for static feed servers. But for dynamic ones, it should be pretty simple to implement, especially for database driven servers.

Advertisements

One thought on “Versioned Feeds

  1. Whatever you do, take notes from FeedDemon, since its level of customizability is highly desirable. Oddly, though, my eyes are so trained on the look of most websites I visit that RSS is more like a habit (of reading) — it takes several weeks to get into the groove.

Comments are closed.