Relational databases have been the norm for traditional as well as web applications. But, certain specialty web applications such as web based instant messaging have scalability needs that push the boundaries of traditional SQL based databases.
With traditional SQL databases, the data is structured and interrelated. So, when a new data structure that wasn’t considered during the initial database design arises, it is usually an ordeal to make distributed upgrades.
What is CouchDB?
CouchDB is an open Apache project that is a peer-based distributed system. Any number of CouchDB hosts (servers and offline-clients) can have independent “replica copies” of the same database, where applications have full database interactivity (query, add, edit, delete). When back online or on a schedule, database changes are replicated bi-directionally.
CouchDB excels in offline access for use without connectivity and the changes synced bidirectionally when connected. There is already calls from the community for including CouchDB support in HTML5.
Couch is actually an acronym for ‘Cluster of Unreliable Commodity Hardware’. CouchDB is supported on GNU/Linux and Mac OS X systems with no official support for Windows.
If you are looking for real-world examples, the online instant message client Meebo uses CouchDB as their backend. That says a lot about how reliable this database is.
Also, you could get some more information on CouchDB at the CouchIO blog.