CouchDB: If you're looking for a quick and dirty document oriented database management system (DDBMS) look no further!
Use Cases and Deployment Scope
CouchDB fulfills a nice problem for us: we use it to store time-series data for a test sensor network, and it is a great introduction to non-SQL concepts and technologies. After performing feasibility analysis on a few projects looking for a good, solid no-SQL solution, several platforms were examined, including MongoDB. However, for this particular project, MongoDB was simply too large for the Job, and no one on the staff had much experience with non-SQL DBMS's. So, we needed a small, powerful database that worked out of the box, and was easy to understand and therefore implement. The value proposition of CouchDB is its simplicity: It's easy to setup and configure and therefore easy to delegate to an IT analyst, and not worry about blowing project funds on hiring outside talent (usually). The Second proposition of CouchDB is that it is developer friendly: you don't need a salesman from XYZ, Corp. to pitch your development team(s) multi-grand licensing deals just to get it up and running: it's open source and works on all of the big platforms (i.e. OSes).
Pros
- Document oriented database management! This alone is worth it: being able to describe your record in a JSON document, and then index it is HUGE.
- You're able to store the SAME document in multiple database instances, and due to CouchDB's engine, it is not a problem.
- FAST: Accessing JSON is programmatically easy to parse, and therefore makes it fast to query and view.
Cons
- Fan Following: If you have used CouchDB in a limited role, and you are not a DBA, then you will blindly fall in love with it. If you're an old DBA that is used to such artifacts as Cubes, then CouchDB may represent alien technology and thus be susceptible to being over-looked.
- CAN be slow: But this is true of any database: Some queries just take longer, and that's a fact of life.
- Uses an awkward engine: it uses an older version of the Javascript engine, which leaves you exposed to vulnerabilities (allegedly).
Likelihood to Recommend
Great for REST API development, if you want a small, fast server that will send and receive JSON structures, CouchDB is hard to beat. Not great for enterprise-level relational database querying (no kidding). While by definition, document-oriented databases are not relational, porting or migrating from relational, and using CouchDB as a backend is probably not a wise move as it's reliable, but It may not always be highly available.
