I just interviewed J Chris Anderson, the CFO of CouchOne, for ReadWriteWeb. CouchOne is the corporate sponsor of an open source database and programming language called CouchDB. Anderson recently started hosting a demo/proof of concept app called Twebz – a decentralized Twitter Client – built with CouchDB and node.js. Anderson explains how CouchDB could be used to decentralize not only Twitter, but most other web applications as well. It’s pretty geeky but could have big ramifications: This tech could help build a more resilient Internet in the face of disasters, cyberwarfare and censorship.
The aim is to allow you to interact with Twitter when Twitter is up and you are online. But if Twitter is down for maintenance or you are in the middle of nowhere, you can still tweet. And when you can reach Twitter again, it will go through.
If lots of folks are using it, then they can see each other’s tweets come in even when Twitter is down.
Mostly the goal was to show the way on how to integrate CouchDB with web services and APIs.
So if you did release this, and people started using it, and then one day Twitter decided “We’re done. We’re going to go raise pigs in the Ozarks,” Twebz would actually still be up and running fine basically forever and everyone could keep reading each other’s Tweets.
Yep. And as a side effect you have a complete personal Twitter archive of the folks you follow.
There’s even a feature to pull in the complete history of a user, so you can get the back fill of your closest friends if you want. [...]
Could CouchDB and Node be used in conjunction to create some sort of decentralized darknet? Something along the lines of Freenet?
Node is a good fit for CouchDB because Couch encourages asynchronous background processes, but people also use Ruby / Python / Java for the same purposes. But yes, eventually the plan is that CouchDB will make web applications a lot more robust because they will no longer depend on a centralized point of failure. E.g., even if Twitter goes out of business, people can continue to share messages.
The turnover of Web 2.0 startups is so fast that I think users get discouraged from signing up for services. Why bother with a new photo share if there’s a chance it won’t be around in a year? But when those are CouchApps, users can continue to use them even if no one is maintaining them, which makes it more rational to invest time in using them. Imagine if Pownce or Dodgeball were still being run by fans.
For another example of how CouchDB is useful in low-connectivity settings, check out this case study on how Better Health Outcomes through Mentoring and Assessments is using CouchDB in rural Zambia.