When comparing CouchDB vs RethinkDB, the Slant community recommends RethinkDB for most people. In the question“What are the best databases to use for Node.js applications?” RethinkDB is ranked 2nd while CouchDB is ranked 3rd. The most important reason people chose RethinkDB is:
Only takes about 30 seconds to install. They also have a docker file for running it on AWS, Google Cloud or your own.
Specs
Ranked in these QuestionsQuestion Ranking
Pros
Pro Works well between physical network partitions
CouchDB works very well even when the network is physically partitioned
Pro Available
CouchDB is considered an available DMS according to the ACP theory of database management. As such it allows every client to always read and write
Pro Useful for applications where versioning is important
CouchDB is mostly used in applications where a large amount of data needs to be accumulated and where data only changes rarely.
Pro Changes API
You can use the RESTful API to listen for changes in your database, which is something most databases can't do. It makes it really easy for clients to keep their view of data up-to-date.
Pro RESTful API
Since everything is stored as a JSON document and served over HTTP, it's perfectly suited for communicating with client-side javascript, with or without middleware.
Pro Easy install
Only takes about 30 seconds to install. They also have a docker file for running it on AWS, Google Cloud or your own.
Pro Changefeeds (change listeners)
You can listen to changes and trigger code based on these changes.
Pro Powerful query language
RethinkDB's ReQL is a very powerful functional query language. The functional aspects of ReQL and the straightforward implementation of the Node driver for Rethinkdb make it a natural fit for Javascript developers. You no longer have to type some obscure syntax in quotes (aka SQL), your queries are just "natural" Javascript functions in the same way you would use lodash to handle your collections.
Pro Auto master promotion
Unlike a lot of other databases where if the master is down the system is down, this one if the master is down someone else is made master so much more peer to peer.
Pro CLI and web administration tools
RethinkDB has administration tools in both CLI and GUI (web app). You can view whats going on right away by going to localhost:8080. The data explorer allows you to run queries on the db.
Pro Horizontal scalability
RethinkDB is scalable horizontally. It has support for sharding, parallel queries and MVCC concurrency.
Pro Ease of cluster setup
You can directly tell it to shard/replicate and how many shards/replicas depending on the amount of nodes. Each node doesn't need anything except one other node's ip/port in the cluster to join and maybe the auth.
Cons
Con Can only achieve consistency through replication and verification
Since CouchDB is considered an AP (Available, Partition-Tolerant database management system), it is not really consistent (not all clients can have the same view of the data consistently) and the only way to achieve some "eventual consistency" is through replication and verification of data.
Con Uncertain future
After a very promising start, development began to drag after major supporters like Canonical, Selenium and CouchOne either shut down or moved to other tools. Development has begun to pick up again.
Con Cannot run queries from its CLI
Con No user accounts
This is just the database, you need to setup your own auth and user accounts (such as using Auth0).