Blastfeed - a small case-study in API persistence
Blastfeed is a service that I've used over the last 6 months or so to build aggregate channels from a set of RSS feeds. For example, I've been using it to build an single RSS feed of all my favorite Second Life blogs which I can then embed into the sidebar of ArtsPLace SL.
Blastfeed isn't the only option for doing this, Yahoo Pipes would have been an obvious alternative, but it was quick and easy to use and, up until now, was also free. Recently I got this by email:
Blastfeed has been running smoothly (almost no glitch besides one last November, sorry again) since its debut a little over a year ago. We hope here at 2or3things that you've enjoyed using Blastfeed.
Hence at this stage we feel it's no longer necessary to keep Blastfeed in a beta mode. We have also decided to focus the service onto corporate applications, while letting the opportunity to web users to subscribe for a fee to unlimited usage.
In line with the above we shall discontinue the free service from February 15th 2008 on.
Should you wish to continue using Blastfeed after that date, please contact us by return email stating your Blastfeed username and email and we'll make a quick and fair proposal. However we'll bind the proposal to the number of potential subscribers.
I'm not complaining. Blastfeed have never promised to remain free forever and until recently they still badged themselves as a beta service. But this does serve as a timely reminder (for me at least) to take steps to mitigate this kind of thing happening.
The "API" to the aggregated feed service(s) that I've built using Blastfeed is effectively an HTTP GET request against the feed URI, with RSS XML returned as a result. With the demise of the free service, I can recreate the aggregated feed somewhere else easily enough - but doing so will change the URI and hence the API that I've built for myself. I'll have to remember all the places that I've used my API (e.g. in the ArtsPLace SL sidebar) and update them with the new URI.
With hindsight, what I should have done was to make the API more persistent by using a PURL redirect rather than the native Blastfeed URI. That way, I could have changed the technology that I use to create the feed (e.g. replace Blastfeed by Yahoo Pipes) without changing the API and without having to update anything else.
Oh well... live and learn!