(3 minute read)
As Twitter becomes ever more important and people begin to wonder whether it can even be used to balance out biased/incomplete mainstream news outlets it becomes clear that leaving it in control of one entity (the Twitter company) is unwise. Don't get me wrong, I love Twitter and I love what the folks behind are doing with it. I am also a fan of how their efforts to stand up for users' rights. But perhaps it's now time to build a more resilient, decentralised alternative to a) make such privacy violations more difficult, and b) reduce the likelihood and impact of a server failure or hack impacting the entire twitter-verse.
identi.ca is a start in the right direction of building an open source community-drive twitter echo-system. But it's shortcoming is that for the most part people are still tied to a single service provider. Yes, they can setup their own back-end but what's the point in doing that if you simply lose access to the community of users who still remain on the main back-end. Dave Winer has already written about building a decentralised, distributed system based on RSS feeds which has no central controlling authority. This is the correct approach (both technically and philosophically) and warrants further development.
Looking back at the evolution of peer-to-peer music sharing networks, network architecture went from Napster (central server) to Gnutella (pure peer-to-peer) to Kazaa (peer-to-peer with auto-elected supernodes). Kazaa was the first file sharing network which was hugely successful because searches were super-fast. This final iteration became the de-facto architectural standard for peer-to-peer globally distributed file sharing networks (for instance Gnutella2 later used a similar architecture to what Kazaa used). The benefits of this architecture:
So, though RSS could be used as the basis for a decentralised Twitter I doubt searches would be as quick as they are in Twitter. Plus, RSS wasn't really designed for micro-blogging and thus isn't designed for real-time updates like Twitter is. A supernode-based peer-to-peer network, on the other hand, is designed for fast search and discovery. Here is how some common Twitter functionality could be implemented:
Disadvantages of this approach:
I'm sure there are things I've overlooked or forgotten. I'd appreciate other thoughts on this.