Twitter is still an early-adopter application, and if the system is running into scale issues already it's unlikely that it will be able to keep up when mainstream adoption occurs.
Twitter appears to have a fundamental design flaw that's not easily dealt with. It was designed to be a stand-alone system functioning in a multiparty/multiprotocol world. In the current architecture Twitter is an application, where it really needs to be a distributed system.
Maybe Twitter needs enterprise service bus (ESB) functionality that runs in enough distributed locations (Yahoo, Google, Amazon.com, desktop) to ensure that messages are reliably delivered. This could be achieved in a wide variety of ways without having to maintain a massive infrastructure like the carriers do for SMS. It would also enforce pervasiveness and adoption.
The fact that Twitter is based on Ruby on Rails is probably only part of the real issue, though Ruby does require a fair amount of tweaking to run reliably. Scale issues are less likely to happen with PHP or Java, but Ruby apps are generally easier to build.
I came up with a few analogous systems that might help to explain some of the technical ways Twitter-scale could be achieved: … Read more