Apache CouchDB is a free, open-source NoSQL document database known for HTTP APIs and multi-master replication. See features, pros, cons and FAQs.
CouchDB was created in April 2005 by Damien Katz, a former IBM Lotus Notes developer, who self-funded development of the project for nearly two years before releasing it as open source. In February 2008, the project entered the Apache Incubator and was relicensed under the Apache License, graduating to a top-level Apache Software Foundation project a few months later.
As an Apache project, CouchDB has no owning company or corporate headquarters; it is maintained by a self-selected community of active contributors under the ASF's standard open-source governance model. The Apache Software Foundation itself is legally registered in Wilmington, Delaware, though CouchDB's actual contributors and users are distributed around the world.
CouchDB is implemented in Erlang, a language built for fault-tolerant, highly concurrent, distributed systems, which supports CouchDB's design priorities around reliability and replication. Data is stored as JSON documents, and CouchDB exposes every operation, reads, writes, replication, and administration, through an HTTP/REST API, meaning a database can be queried using nothing more than standard HTTP tooling or even a browser.
Querying was originally handled through JavaScript-based MapReduce views; version 2.0 added Mango, a more approachable, MongoDB-inspired declarative query language, alongside significant performance improvements to replication and compaction and a rewritten Fauxton administration interface.
CouchDB's most distinctive feature is its replication protocol, which supports multi-master (bidirectional) sync between any two compatible CouchDB instances, with automatic document-level conflict detection when the same document changes on multiple nodes independently.
This replication model is the foundation for a wide range of offline-first applications, particularly on mobile and in environments with unreliable connectivity, and it also underlies related projects such as PouchDB, a JavaScript database built to sync with CouchDB-compatible servers directly from within a web browser.
Yes, CouchDB is completely free and open source, released under the Apache License 2.0 by the Apache Software Foundation, with no licensing fees.
CouchDB was created in April 2005 by Damien Katz, a former IBM Lotus Notes developer, and became an Apache Incubator project in February 2008 before graduating to a top-level Apache Software Foundation project.
CouchDB is implemented in Erlang, a language designed for building fault-tolerant, highly concurrent, distributed systems.
CouchDB is distinguished by exposing all database operations through an HTTP/REST API and by its multi-master replication protocol, which supports offline-first applications with automatic document-level conflict detection.
The Apache Software Foundation does not offer an official managed cloud service for CouchDB; managed hosting and commercial support are available from various third-party providers instead.
CouchDB originally used JavaScript-based MapReduce views for querying and indexing, and added Mango, a more approachable declarative, MongoDB-inspired query language, starting in version 2.0.
Fauxton is CouchDB's built-in, web-based administration interface for managing databases, documents, and server configuration without a separate client application.
Yes, CouchDB's multi-master replication protocol is a common foundation for offline-first applications, and it underlies related projects such as PouchDB, which syncs directly with CouchDB-compatible servers from within a browser.