Couch is an acronym for cluster of unreliable commodity hardware.3 The CouchDB project was created in April 2005 by Damien Katz, a former Lotus Notes developer at IBM. He self-funded the project for almost two years and released it as an open-source project under the GNU General Public License.
In February 2008, it became an Apache Incubator project and was offered under the Apache License instead.4 A few months after, it graduated to a top-level project.5 This led to the first stable version being released in July 2010.6
In early 2012, Katz left the project to focus on Couchbase Server.7
Since Katz's departure, the Apache CouchDB project has continued, releasing 1.2 in April 2012 and 1.3 in April 2013. In July 2013, the CouchDB community merged the codebase for BigCouch, Cloudant's clustered version of CouchDB, into the Apache project.8 The BigCouch clustering framework is included in the current release of Apache CouchDB.9
Native clustering is supported at version 2.0.0. And the new Mango Query Server provides a simple JSON-based way to perform CouchDB queries without JavaScript or MapReduce. Also in version 2.0.0 was the introduction of Fauxton, the new built-in web interface, to replace Futon, the old built-in web interface.10
CouchDB also offers a built-in administration interface accessible via Web called Fauxton.12
Replication and synchronization capabilities of CouchDB make it ideal for using it in mobile devices, where network connection is not guaranteed, and the application must keep on working offline.
CouchDB is well suited for applications with accumulating, occasionally changing data, on which pre-defined queries are to be run and where versioning is important (CRM, CMS systems, by example). Master-master replication is an especially interesting feature, allowing easy multi-site deployments.13
Users of CouchDB include:
CouchDB manages a collection of JSON documents. The documents are organised via views. Views are defined with aggregate functions and filters are computed in parallel, much like MapReduce.
Views are generally stored in the database and their indexes are updated continuously. CouchDB supports a view system using external socket servers and a JSON-based protocol.26 As a consequence, view servers have been developed in a variety of languages (JavaScript is the default, but there are also PHP, Ruby, Python and Erlang).
Applications interact with CouchDB via HTTP. The following demonstrates a few examples using cURL, a command-line utility. These examples assume that CouchDB is running on localhost (127.0.0.1) on port 5984.
CouchDB includes a number of other open source projects as part of its default package.
Apache Software Foundation. "Apache CouchDB". Retrieved 15 April 2012. https://couchdb.apache.org/ ↩
Smith, Jason. "What is the CouchDB replication protocol? Is it like Git?". StackOverflow. Stack Exchange. Retrieved 14 April 2012. https://stackoverflow.com/a/4766398/395287 ↩
"Exploring CouchDB". Developer Works. IBM. March 31, 2009. Retrieved September 30, 2016. http://www.ibm.com/developerworks/opensource/library/os-couchdb/index.html ↩
Apache mailing list announcement on mail-archives.apache.org https://mail-archives.apache.org/mod_mbox/incubator-general/200802.mbox/%3c3d4032300802121136p361b52ceyfc0f3b0ad81a1793@mail.gmail.com%3e ↩
Re: Proposed Resolution: Establish CouchDB TLP on mail-archives.apache.org https://mail-archives.apache.org/mod_mbox/incubator-couchdb-dev/200811.mbox/%3c3F352A54-5FC8-4CB0-8A6B-7D3446F07462@jaguNET.com%3e ↩
"CouchDB NoSQL Database Ready for Production Use" Archived 2010-11-15 at the Wayback Machine, article from PC World of July 2010 https://www.pcworld.com/article/201046/couchdb_nosql_database_ready_for_production_use.html ↩
Katz, Damien. "The future of CouchDB". Retrieved 15 April 2012. http://damienkatz.net/2012/01/the_future_of_couchdb.html ↩
Slater, Noah (25 July 2013). "Welcome BigCouch". Retrieved 25 July 2013. https://blogs.apache.org/couchdb/entry/welcome_bigcouch ↩
"'2.0'". 20 September 2016. Retrieved 13 January 2017. https://blog.couchdb.org/2016/09/20/2-0/ ↩
"1.8. 2.0.x Branch — Apache CouchDB® 3.3 Documentation". docs.couchdb.org. Retrieved 2024-08-04. https://docs.couchdb.org/en/stable/whatsnew/2.0.html ↩
CouchDB, Technical Overview Archived October 20, 2011, at the Wayback Machine https://couchdb.apache.org/docs/overview.html ↩
"couchdb-fauxton". GitHub. apache. Retrieved 2 May 2023. https://github.com/apache/couchdb-fauxton ↩
Cassandra vs MongoDB vs CouchDB vs Redis vs Riak vs HBase comparison from Kristóf Kovács http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis ↩
"Why Large Hadron Collider Scientists are Using CouchDB". ReadWrite. 2010-08-26. Retrieved 2022-03-29. https://readwrite.com/lhc-couchdb/ ↩
iDAT, Red Cross Code, 2021-07-31, retrieved 2022-03-29 https://github.com/redcross/idat ↩
"Database-Deep-Dives-CouchDB". www.ibm.com. 19 July 2019. Retrieved 2022-03-29. https://www.ibm.com/cloud/blog/database-deep-dives-couchdb ↩
"United Airlines Streamlines Operations With Couchbase | Case Study". www.couchbase.com. Retrieved 2022-03-29. https://www.couchbase.com/customers/united-airlines ↩
"CouchDB in the wild" Archived 2017-07-20 at the Wayback Machine article of the product's Web, a list of software projects and websites using CouchDB https://wiki.apache.org/couchdb/CouchDB_in_the_wild ↩
Cutler, Kim-Mai (9 June 2012). "Meebo Gets The Classic Google Acq-hire Treatment: Most Products To Shut Down Soon". TechCrunch. AOL Inc. Retrieved 7 January 2016. https://techcrunch.com/2012/06/09/meebo-product-shutdown/ ↩
"npm-registry-couchapp". GitHub. npm. 17 June 2015. Retrieved 7 January 2016. https://github.com/npm/npm-registry-couchapp ↩
CouchDB at the BBC as a fault tolerant, scalable, multi-data center key-value store http://www.erlang-factory.com/conference/London2009/speakers/endafarrell ↩
Email from Elliot Murphy (Canonical) Archived 2011-05-05 at the Wayback Machine to the CouchDB-Devel list https://mail-archives.apache.org/mod_mbox/couchdb-dev/200910.mbox/%3C4AD53996.3090104@canonical.com%3E ↩
Canonical Drops CouchDB From Ubuntu One (Slashdot) http://linux.slashdot.org/story/11/11/22/171228/canonical-drops-couchdb-from-ubuntu-one ↩
"Protogrid - Über uns". https://protogrid.com/bisc/de/001-about ↩
View Server Documentation Archived 2008-10-20 at the Wayback Machine on wiki.apache.org https://wiki.apache.org/couchdb/ViewServer ↩