NoSQL database with great replication capabilities.

Multi-master replication (you can write to any server, even if it cannot see any other servers). Of course, as per CAP Theorem this means trading off consistency for availability and partition tolerancy.

Replication

Replication can be

  • unidirectional or bidirectional
  • one-time or continuous
  • periodic or on-demand

During replication, CouchDB will compare the source and the destination database to determine which documents differ between the source and the destination database. It does so by following the Changes Feeds on the source and comparing the documents to the destination.

A replication task will finish once it reaches the end of the changes feed. If its continuous property is set to true, it will wait for new changes to appear until the task is canceled. Replication tasks also create checkpoint documents on the destination to ensure that a restarted task can continue from where it stopped, for example after it has crashed.

Changes Feeds

results is the list of changes in sequential order. New and changed documents only differ in the value of the rev; deleted documents include the "deleted": true attribute.