Prompted by the recent article in Wired, I feel that now is a good time to suggest to the fine folks at Twitter that they might be pursuing the wrong options for keeping their servers online. Anyone who has used twitter has probably seen the fail whale at least a few times during your stay at Twitter. Typically, this happens when Twitter’s servers get bombarded with users and, instead of failing in a fiery explosion, choose to display this pretty picture of a whale to prevent them from an imminent overload.
Well, Twitter has been making some pretty important changes to their system over the past few days, and I think it’s important that we all understand the impact they’ll have on us – especially those of us that use software on our phones or computers to check Twitter. More after the jump.
In the computing world, there’s a common concept termed an Application Programming Interface (API) that describes the interface that allows a desktop or cellphone application to talk to some service on a website. Twitter’s API allows programs like Tweetie, Twitterrific, and Seesmic to download your friend’s tweets, post new tweets on your behalf, and do pretty much anything else you normally do through the Twitter website. Essentially, this opens up the capability for you to interact with twitter without going to the actual website.
In order to minimize the number of fail whales on their website, Twitter (and most other websites with API) enact a policy called rate limiting. Rate limiting is the practice of limiting the number of different requests that an application can make to Twitter on your behalf. In the beginning, users were limited to 350 requests per hour. In June, this limit was cut down to 175. However, yesterday, avid Twitter users like myself started experiencing problems accessing Twitter – being told that we have exceeded our rate limits unexpectedly.
Reports started rolling into Wired from different software vendors that the rate limit had, all-of-a-sudden, been cut down to 75 requests per hour. Then, at 8:40AM, this appeared on one of Twitter’s official accounts:
We’re hearing reports that we’re incorrectly rate limiting some requests – we’re investigating. ^RK
8:40 AM Jul 6th via Twitter for iPhone
So, it seems from this message that this is all the result of a huge misunderstanding. No further updates have been posted by Twitter or Wired, but I would venture to argue that there may be a bigger issue at play. Allow me to illustrate.
Every time you request someone’s Twitter status, that counts against your hourly rate limit. On my Android smartphone, I have over 250 contacts in my address book, and the built-in Twitter application periodically updates their statuses so that when I’m looking at their contact information, I see their current tweet. The kick in the pants is that if I am following about 175 people on Twitter, when my phone updates every hour, it’ll already max out my rate limit. That’s kind of a problem, for me at least.
I understand the importance of rate limiting, but Twitter is at a point where if they keep saying “Sloooow down” someone is going to be ready to kick them with their energy legs, and that’s just not going to be pleasant. It might be time to move to a more flexible way of keeping their servers online.