CouchDB: open-source NoSQL Database for BigData and Cloud
Apache CouchDB is an open-source document-oriented NoSQL database. CouchDB uses multiple formats and protocols to store, transfer, and process its data, it uses JSON to store data, JavaScript as its query language using MapReduce, and HTTP for an API.
Seamless multi-master sync, that scales from Big Data to Mobile, with an Intuitive HTTP/JSON API and designed for Reliability.
Written in: C
, C++
, Erlang
, Javascript
Project Goals
- CouchDB is a terrific single-node database that works just like any other database behind an application server of your choice.
- Most projects start with a single node CouchDB instance. More demanding projects can seamlessly upgrade to a cluster.
- Unlike a relational database, a CouchDB database does not store data and relationships in tables. Instead, each database is a collection of independent documents. Each document maintains its own data and self-contained schema.
Project Features
- CouchDB 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.
- CouchDB makes use of the ubiquitous HTTP protocol and JSON data format and is compatible with any software that supports them. CouchDB also works great with external tools like HTTP proxy servers, load balancers.
Project Design and Security
- CouchDB is serious about data 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.
- CouchDB 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.
- 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.