I once told myself I’d never write about Twitter‘s downtime, because everyone in the tech blogosphere writes about it. Today I’m going against that. The problems have simply become ridiculous.
Back when I first started using Twitter, it was very responsive. (I tried to find my first tweet as an example, but there’s currently a paging limit of 10 which blocks everything but the 200 most recent tweets.) Posting was nearly instantaneous, the API allowed 70 requests every hour, one could get replies to one’s own tweets using a convenient tab on the site or simple call to the API, you could add keywords you wanted to track and have matching tweets sent to you (via IM or SMS), and you could even use Twitter via IM alone!
Now all that has changed. With the thousands — nay, millions — of new users that have joined over the last several months, plus the increases in highly tweetlific (tweeting prolifically) power users, Twitter has had lots of downtime. There’s been more downtime than I could possible list here; even linking to reports of that downtime is something I’ll leave up to the reader (search for “twitter is down” in Google and see how many results you get).
Not only has the service gone down a lot, but many features have been crippled or disabled. The API is limited to 20 req/h out of the original 70 (and has been for weeks); keyword tracking has been shut off for even longer; the IM bot has been offline for so long I can’t even remember what using it was like; pagination is limited to the latest 10 pages (of 20 tweets) for each section; the Replies tab has been disabled, requiring the use of search services like Summize to gather responses to one’s own messages; the list goes on and on.
Perhaps the most annoying part of all this is the fact that, no matter what the Twitter developers do, the site still goes down. Twitter was founded by the engineers who wrote Blogger, for crying out loud; it should be able to handle a little scaling. But maybe the fact that Blogger engineers wrote the service is the very problem.
The fundamental issue is this: Twitter was written to be a content management system (CMS), not a messaging service. Blogger is a CMS, too. The capability to handle hundreds or thousands of inputs every second is not part of the normal CMS design pattern. Twitter needs to be fundamentally rewritten.
I know I’m not saying anything new; in fact, some of my ideas were inspired or taken directly from other blogs (too many to even begin to remember, unfortunately). It’s just that, with today’s outage, I realized just how true all the criticisms are. Twitter may disable feature after feature in an effort to reduce the load on the servers that make the site run, but the underlying architecture is a huge (er, very narrow) bottleneck. Technically speaking, you cannot make a messaging system out of a CMS; it’s just not possible, code-wise. The two system types have vastly different ways of handling things.
Things might not be so bad, though, if being written as the wrong kind of service was Twitter’s only problem. The excessive load caused by the incorrect architecture has caused other technical failures in the system, including the loss of an entire database about a month ago and, just this morning, an overloaded load balancer (how’s that for irony?). But at least they launched that nice Twitter Status Blog so they can tell us that they’re down after we’ve already known for half an hour.
If I didn’t love Twitter to death I’d probably have given up on it by now. Lots of people already have. The latest darling in the social media space is Plurk, which I personally can’t stand (the UI is ugly). I like Jaiku better, but it’s been invite-only ever since being acquired by Google, which means it’s hard to get an account. Pownce is just too weird for me. All I can do for now is deal with the ridiculous bugs, outages, glitches, and all the other crap we Twitter users have to deal with. Then, during the downtimes, I can hope that when I get back in August, Twitter will be back to normal.
If only I had any confidence that it’ll happen that quickly.
Update (08/17): Well, actually, Twitter got a whole ton better over the last six weeks or so. After continuing to use it for almost two weeks (back in normal, twhirl-using mode), I’m finding the upped API limit (100 req/h) to be absolutely great, and the site is much faster than it was in June. Looks like a lot of my complaints from this post are no longer relevant. Yay! I just wish that some people (*cough* possible248 *cough*) hadn’t moved to other sites in the interim…