CouchDB, our data frenemy
May 17, 2016

CouchDB, our data frenemy

Anonymous | TrustRadius Reviewer
Score 6 out of 10
Vetted Review
Verified User

Overall Satisfaction with CouchDB

I am using CouchDB as the main NoSQL information database server for our product, a globally used network testing and security product. CouchDB helps us save and access thousands of documents of crucial information representing the data points and meta data of the product activities.
  • Lightweight NoSQL data store.
  • Can be accessed dynamically using any RESTful-API compliant software.
  • Saves data in documents based on JSON structures.
  • Can view and manipulate data inside your browser.
  • Futon (the in-browser views manager) is not up to par. It lacks tons of needed functionality (like deleting a group of documents in one action).
  • CouchDB is NoSQL, which means accessing data needs views (written in JS only). Your power of accessing data is limited to the power of your written views (so no unified way to access any types of data documents like we see in structures SQL databases).
  • CouchDB software adapters are limited. You mainly have a couch-rest library for rails apps.
  • Positively, it's a data store that requires a minor setup process and data can be viewed inside the browser.
  • It's also free and open source, so no extra products needed to get the stack set up.
  • Negatively, due to majorly lacking search capabilities, our customer support teams needed a separate solution that rides on top of the CouchDB API to be able to search and view customers' records and activities.
I have briefly used MongoDB in other products, and it proved that it had better integration capabilities with Ruby on Rails and node.js software platforms, more than CouchDB. But I never had the chance to actually replace CouchDB with MongoDB in the current product to see what improvements it could have made. But I expect API libraries support would be better.
We're stuck with it by now - an upgrade to a different NoSQL or SQL database solution will be a MAJOR effort.
I can say that generally if your application is in need for a data store where you care more about dumping data than extracting and viewing it, use CouchDB. It's fast. However, you should know that if your data grows really big, reindexing slows down everything. And I can recall many scenarios when reindexing took the database down for a few minutes after every production deploy, that we had to take the website down for a few minutes reporting to our clients temporary unavailability of service (which was expected after a major upgrade).

If your product depends heavily of mining data, stay away from CouchDB, since it's not the best out there when it comes to data search capabilities. May be then it's worth more looking into other options like MongoDB.