CouchDB - The Hidden Gem of NoSQL Databases
March 08, 2017

CouchDB - The Hidden Gem of NoSQL Databases

Dave Lundberg | TrustRadius Reviewer
Score 10 out of 10
Vetted Review
Verified User

Overall Satisfaction with CouchDB

Datawhere provides a file intelligence platform that helps people and companies find digital assets ("file") across platforms, devices, and geographic barriers. Our customers are mostly in media-oriented companies - advertising, film, visual effects, post-production, etc., - that have large numbers of distributed, rapidly changing file sets that are touched by many users.

We use CouchDB + Logstash + Elasticsearch to provide incredibly fast, powerful "search and do stuff" functionality for our customers. And they love it!
  • Technically easy to use and integrate. REST API allows CouchDB to work with all technologies we use: node.js, lua, python, Elasticsearch, Logstash, etc. Our experience is that it is very robust and has been trouble-free to sue for over 5 years of heavy daily use.
  • Using map/reduce allows us to quickly implement new views into our customer's data based on their needs. Easy to develop new features based on CouchDB's view/list/show mechanism. Functions are written in Javascript, which allows a broad range of our developer's to understand and contribute to code.
  • NoSQL is wonderful for our data set. We support format-specific metadata for many thousands of different file types without the need to change schemas or anything else. We find that CouchDB allows us to focus more on our applications and customers and less on back-end design.
  • Scales for us well. We have 100's millions of documents, many with binary attachments, stored in thousands of databases. Running on some fairly meager hardware distributed across multiple locations. There is not difference in performance today as when we had a few thousand documents when we started.
  • Replication model is very nice and simple. And fast! We use it for obvious things like backups & redundancy. But we also use it for deploying software updates and for remote data colleciton from customer sites.
  • CouchDB's documentation is a bit lacking. The technical bits are all there from Apache, but meaningful examples are hard to find. I would say the learning curve is a few months to get fluent. Not that CouchDB is too complex, but it has a design that takes some effort to understand and leverage. But for us the results have been more than worth it.
  • CouchDB could use some better tools for managing & administrating itself. We have many thousands of CouchDB databases and had to invest a bit of development effort to be able to managing it all. But the REST API is simple, there are node.js modules like cradle, etc that minimze any challenges we have had.
  • It is not widely used. Or if it is, not a lot of people are admitting to it! This may be a concern if you are looking for people that have CouchDB experience to work on your project.
  • Biggest impact on our business has been that CouchDB has been pretty invisible from a cost or issues perspective. It just works.
  • We use the Apache releases, so it's free. Of course there is a cost to "free" - we have invested time to become fluent in using and understanding CouchDB. But we feel the investment was well worth the effort and we have a solid, fundamental technology to our products that "just works".
  • There are some things we do - SaaS vs self-hosting - that have probably been kept simple by using CouchDB. Overall, we are extremely happy with CouchDB.
It has been 5+ years since we chose CouchDB. We looked an MongoDB, Cassandra, and probably some others. At the end of the day, the performance, power potential, and simplicity of CouchDB made it a simple choice for our needs. No one should use just because we did. As I said early, make sure you understand your problems, and find the right solution.

Some random reading that might be useful:
http://www.julianbrowne.com/article/viewer/brewers-cap-theorem
https://www.couchbase.com/nosql-resources/why-nosql\
https://www.infoq.com/articles/cap-twelve-years-later-how-the-rules-have-changed


Will continue to use while it makes sense. Makes a lot of sense to us right now.
We have a read-heavy environment and CouchDB excels for us. We also use Elasticsearch with CouchDB for powerful and fast searching. We also have both SaaS and self-hosted deployments of our technology. CouchDB has been great to use on our infrastructure, as well as on our customer's systems. Simple to deploy, virtually no management. Scales to all sorts of hardware (we have it on Raspberry PIs!).

Do your homework and understand the nature of your data and how it needs to be stored, accessed, and moved around. Make sure that NoSQL fits your problem. If it does, look at CouchDB. It isn't the most popular NoSQL database, but we love it.