
The Fail Whale
The popular micro-status service Twitter has a huge problem: itself. With the explosion of startups and sites dedicated to aggregating Twitter, the Rails-based monolith has been feeling the pain architecturally as it struggles to keep up with its (frankly appalling) 100-API-request-per-hour limit.
As a micro-industry grows around it, Twitter is subject to evermore-creative uses such as real-time emergency broadcasting and the aid of disaster recovery, with the assumption that its architecture is strong enough to disseminate critical information in real-time, reliably. This is simply not the case, and serves as a perfect segue into our next question: can lives be trusted to Twitter?
And there was Light
When Twitter was first created, I doubt that the designers ever thought that it would evolve to become what it has today, nor do I think that they really understand what they’ve created, and the responsibilities they have to their creation. Today, over three million messages will be posted to Twitter. Yes, the majority of them may be stupid (my personal favorite example: “I’m eating a salad.” … “Who gives a fuck!?”) but there will be a great deal of them that affect the way people live, from meeting arrangements to flood warnings. What happens if the messages don’t get where they’re supposed to?
It is absolutely critical for Twitter to realize that it is no longer a fancy-free garden-salad-variety website — Twitter is now a public utility, and in my opinion it is time that they accept that responsibility and start behaving as such.
Walking the Talk
Twitter has a long way to go if it is to become a utility. Their basic goals should be:
- Run from Ruby and Rails - I love Ruby. I think it is the best language out there, but it and (especially) Rails are not the tools for this job. Ruby’s interpreter is significantly slower than those of many other languages, and Rails was designed for the agile development crowd. Twitter: You aren’t really adding new features anymore, therefore you don’t need the framework that was designed for that subset of rapid development.
- 99.9999% uptime (the real definition, not your definition) - First of all, you’re lying about your uptime. I see the fail-whale on a regular basis. In fact, we’ve become rather good friends. His name is Mitch. Not Mitchell. He doesn’t like that. We sit around and drink Mojitos on Friday nights, and play racquetball on Sundays. That’s how often I freaking see him. If your definition of “uptime” applies to your homepage only, then yes, you are up the 99.98% that you claim. People rely on you — it’s time to rethink your topology/architecture. Rewrite the whole goddamn thing. Just do it. Don’t argue.
- Be API-centric - According to Twitter co-founder Biz Stone, your API traffic is an order of magnitude larger than the browser traffic to your site. If that’s true, then why the hell am I limited to 100 requests an hour? Your savior is going to be the industry you create around yourself, NOT advertising or anything like that. The little industry you’re creating demands data, so give it to them — as much as they can handle.
- Ensure predictable delivery speed - I’m not saying it has to be instantaneous (although it could easily be) — I’m just saying that the variable wait time is a problem because you give the impression that it’s instantaneous. You’ve effectively become the world’s most delayed IM service.
Competition Fail
I don’t really know much about Twitter’s competitors, but I can tell you that they’ve already lost. FriendFeed and Identica are wonderful services, but they don’t appeal to the masses. They appeal to the geeks — and on Twitter the masses are no longer the geeks.
That said, I have a ton of respect for Identica. The idea and execution are great, but the marketing required to make it mainstream just isn’t there. This is one of those annoying illogical cases where it really is almost all in the name!
Conclusion
Twitter’s greatest success will come when it realizes that the best companies do one thing, and do it very well. They should be done adding features, and instead focus on redeveloping the entire system and monetizing it. They need to begin charging your biggest API users, and they need to do it fast. Most of all, Twitter must remember its responsibility to its users, and know that someday someone’s life may rest in their hands.