Apache CouchDB (or just CouchDB) takes database technology to the Internet, even using the standard HTTP web protocol for reading and writing data. CouchDB is also designed to handle huge quantities of information with little structure while remaining highly scalable and reliable. The name ‘Couch’ is an acronym formed from ‘Cluster of unreliable commodity hardware’. Following its first release in 2005, CouchDB became an Apache project in 2008, with the first stable version available in 2010. While CouchDB is usually categorized as a NoSQL data store, it also offers the possibility of ACID (Atomic Consistent Isolated Durable) transaction properties.
Built-In Support for Concurrency and Fault-Tolerance
CouchDB uses the Erlang programming language as its development platform. Erlang has a long-standing history in the telecommunications sector as the basis for reliable systems. It also has two further properties that carry over into CouchDB. Firstly, it can take advantage of multiple CPU cores for higher performance. Secondly, it is well-adapted to small devices as well as large systems. Consequently, CouchDB is available on Android systems as well as Apple Mac, BSD Unix, Linux, Solaris and Windows. It is licensed under the Apache 2.0 License, giving the user the royalty-free right to use and modify the software. The original creator of CouchDB, Damian Katz, has also built a new version named Couchbase, with a memcached-style API instead of HTTP, and enhancements such as cluster auto-sharding. Their website offers a detailed comparison of Couchbase vs CouchDB for additional information.
When Would You Choose CouchDB?
CouchDB is a natural candidate for collaborative web applications in particular and for web apps and document-oriented applications in general. CRM and CMS systems can benefit from its capabilities, with their requirements for accumulating and occasionally changing data, and running predefined queries. CouchDB emphasizes effective detection and resolution of data conflicts too, and facilitates offline working (for example in mobile apps) as well as online. Multi-site deployment is enhanced through the use of master-to-master replication of data.
Getting Started with CouchDB
CouchDB can be installed on the systems mentioned above, and is also available as a hosted service from three providers: Cloudant, offering CouchDB hosting and Big Data analytics; Iris Couch, with CouchDB hosting and consultancy services; and Couchappy, targeting high-performance CouchDB hosting. Thanks to the HTTP API built into CouchDB, it can serve web apps directly. Documents in CouchDB can be accessed and indexes can be queried using a web browser. Validation functions for applications that require robust checks on new documents are also available.
Who Uses CouchDB Today?
With its web orientation, CouchDB is used in a variety of server-based and mobile applications, including online dating, car sales, blogs and Facebook applications. Some high-profile examples include the BBC (British Broadcasting Corporation) for its dynamic content platforms, Credit Suisse for internal commodities trading use and Infinigon for its social analytical trade signal system. Publicly available software products using CouchDB address areas such as site creation, message board creation and management, presentation, brainstorming and idea management, project tracking, and cloud federation.