Decentralized Twitter Thoughts
Dave wrote a post today raising the idea of a "decentralized Twitter" because of the recent downtime, and ongoing single point of failure issues involved with the service. I've actually thought about this a bit in the past, and written about it a bit, but I wanted to explore the idea again.
To me, at the core Twitter is what I call "echo bot". Just like any other IM bot, it signs on as another user which you add to your buddy list, and you send it messages and it gives responses. The idea with an echo bot is that all it does is take whatever message you send it and repeats it to everyone *else* who is in its buddy list. In other words, it echoes what you say to anyone else that has that particular bot as a friend. The bot script could easily write the messages its passing to a log, or act as a gateway to various other transports such as mail or SMS, right? So if you were to host your own echobot (which is really nothing more special than a long-lived python or perl script that reads and writes to a socket), and had all your friends add the bot's user ID to their IM buddies, it would meet much of the functionality that Twitter does.
This doesn't solve the decentralization problem, though, it just moves it around a bit. If your echobot was writing the micro-blogs for all your friends for example, and then your bot died, well, they'd still be out of luck.
That said, being able to mimic the core functions of a Twitter-like messaging system locally means you can start thinking of ways to federate the bots in some sort of P2P like way. Even as an echobot is repeating messages to everyone on its immediate IM list, it could also be sending off packets to peer echobots as well, a message passing along the different bots to interested parties the same way a file is passed along a Gnutella network from provider to seeker. As messages route along a network towards "super-peers" (I love that self-contradicting term) echobots can register IDs that it wants to listen to, which it then passes along to its buddies.
All the details are fuzzy, of course, as I have little to no idea of the internal workings of P2P networks, but it seems conceptually both possible and implementable by a couple of hackers over a weekend. Then we all run our own bots, either on our local machines or on a server, and Twitter, Jaiku and the rest become simply hosted services and super-nodes in that messaging eco-system.
Just a thought.
-Russ