It is open-source database software that focuses on ease of use and having a scalable architecture. It has a document-oriented NoSQL database architecture and is implemented in the concurrency-oriented language Erlang; it uses JSON to store data, JavaScript as its query language using MapReduce. Applications interact with CouchDB via HTTP.

CouchDB implements a form of multiversion concurrency control (MVCC) so it does not lock the database file during writes. Conflicts are left to the application to resolve. Resolving a conflict generally involves first merging data into one of the documents, then deleting the stale one.Therefore CouchDB can handle a high volume of concurrent readers and writers without conflict.

Use cases

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.

Main features:

Offline First Data Sync: CouchDB’s unique Replication Protocol is the foundation for a whole new generation of “Offline First” applications for Mobile applications and other environments with challenging network infrastructures.

Ecosystem: It is built for servers (from a Raspberry Pi to big cloud installations), while PouchDB is built for mobile & desktop web-browsers and Couchbase Lite is built for native iOS & Android apps. And all of them can seamlessly replicate data with each other.

Single Node Database: It is a terrific single-node database that works just like any other database behind an application server of your choice

Cluster: It is also a clustered database that allows you to run a single logical database server on any number of servers or VMs. A CouchDB cluster improves on the single-node setup with higher capacity and high-availability without changing any APIs.

Reliability: Individual nodes use a crash-resistent append-only data structure. A multi-node CouchDB cluster saves all data redundantly, so it is always available when you need it.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store