# apache/couchdb

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/apache-couchdb).**

6,905 stars · 1,075 forks · Erlang · Apache-2.0

## Links

- GitHub: https://github.com/apache/couchdb
- Homepage: https://couchdb.apache.org/
- awesome-repositories: https://awesome-repositories.com/repository/apache-couchdb.md

## Description

CouchDB is a NoSQL document database that stores data as flexible documents and exposes a RESTful API for data management over HTTP. It functions as a distributed document store, synchronizing and replicating data across multiple nodes to ensure high availability and consistency.

The system includes a full-text search engine that transforms database records into queryable documents, supporting sorting and pagination. Data synchronization is handled via multi-master replication, which exchanges revision histories to maintain consistency across distributed nodes.

The database utilizes multi-version concurrency control to allow simultaneous reads and writes without locks. Storage is managed through append-only and B-tree based structures to facilitate crash recovery and efficient disk-based lookups.

## Tags

### Data & Databases

- [Document Storage](https://awesome-repositories.com/f/data-databases/document-storage.md) — Persists unstructured or semi-structured data as flexible documents in a NoSQL store. ([source](https://github.com/apache/couchdb/blob/main/.asf.yaml))
- [Distributed Document Stores](https://awesome-repositories.com/f/data-databases/data-engineering-infrastructure/data-persistence-storage/data-storage/specialized-database-engines/distributed-document-stores.md) — Implements a schema-flexible storage architecture that organizes data into searchable documents across distributed environments.
- [Data Replication](https://awesome-repositories.com/f/data-databases/data-replication.md) — Synchronizes data across distributed database nodes to ensure consistency and high availability across the network. ([source](https://github.com/apache/couchdb/blob/main/.readthedocs.yaml))
- [Document Databases](https://awesome-repositories.com/f/data-databases/document-databases.md) — Operates as a database that stores data in flexible, document-oriented formats like JSON.
- [Inter-Node Data Synchronization](https://awesome-repositories.com/f/data-databases/inter-node-data-synchronization.md) — Synchronizes data across multiple primary nodes to maintain reliability and availability within the distributed cluster. ([source](https://github.com/apache/couchdb/blob/main/.asf.yaml))
- [Multi-Master Replication](https://awesome-repositories.com/f/data-databases/multi-master-replication.md) — Implements a replication architecture where multiple nodes can concurrently serve both read and write requests.
- [Append-Only Storage Engines](https://awesome-repositories.com/f/data-databases/append-only-storage-engines.md) — Utilizes a storage architecture that persists data as immutable sequences of records to improve crash recovery.
- [Full-Text Search Engines](https://awesome-repositories.com/f/data-databases/full-text-search-engines.md) — Ships a full-text search engine that transforms database records into queryable documents with sorting and pagination.
- [Full-Text Search Indexes](https://awesome-repositories.com/f/data-databases/full-text-search-indexes.md) — Creates searchable indexes of text content allowing for rapid keyword retrieval across a large corpus of documents.
- [Multi-Version Concurrency Control](https://awesome-repositories.com/f/data-databases/multi-version-concurrency-controls/multi-version-concurrency-control.md) — Uses multi-version concurrency control to track document revisions and enable non-blocking read and write operations.
- [Multi-Modal Index Queries](https://awesome-repositories.com/f/data-databases/search-indexing/multi-modal-index-queries.md) — Retrieves documents using query syntax that supports sorting, range facets, and efficient pagination. ([source](https://github.com/apache/couchdb/tree/main/extra/nouveau))
- [B-Tree](https://awesome-repositories.com/f/data-databases/storage-engines/b-tree.md) — Organizes documents and indexes in B-Tree structures to optimize disk-based range queries and lookups.

### Web Development

- [RESTful HTTP Interfaces](https://awesome-repositories.com/f/web-development/http-api-integrations/restful-http-interfaces.md) — Exposes all database operations through a stateless REST-oriented HTTP interface for remote data management.
- [RESTful Data APIs](https://awesome-repositories.com/f/web-development/restful-data-apis.md) — Implements programmatic interfaces using standard HTTP methods for creating and managing document data. ([source](https://github.com/apache/couchdb/blob/main/.readthedocs.yaml))

### Development Tools & Productivity

- [Database Management APIs](https://awesome-repositories.com/f/development-tools-productivity/rest-apis/user-management-apis/http-api-user-management/database-management-apis.md) — Provides HTTP APIs specifically designed for managing database server configurations and operational settings. ([source](https://github.com/apache/couchdb/blob/main/version.mk))

### Part of an Awesome List

- [Database Engines](https://awesome-repositories.com/f/awesome-lists/data/database-engines.md) — JSON-based document database with HTTP API.
- [Database Management Systems](https://awesome-repositories.com/f/awesome-lists/data/database-management-systems.md) — Document-oriented database with multi-master replication and HTTP API.
