CouchDB is an open-source document-oriented NoSQL database that uses JSON to store data. It was created by Damien Katz in 2005 and became an Apache project in 2008. CouchDB stores documents in databases and provides a RESTful API for reading, adding, editing and deleting documents. It uses MVCC for concurrency and handles updates in a lockless and optimistic manner. CouchDB follows the CAP theorem and can be partitioned across multiple servers for availability. It uses MapReduce to index and query documents through JavaScript views. Replication allows synchronizing copies of databases by comparing changes. Data can also be migrated to mobile clients through integrations.