Couchbase Data Platform is pretty great, but it's not all rainbows and unicorns
September 24, 2018

Couchbase Data Platform is pretty great, but it's not all rainbows and unicorns

Ryan J. Thompson | TrustRadius Reviewer
Score 8 out of 10
Vetted Review
Verified User
Review Source

Overall Satisfaction with Couchbase Data Platform

We use Couchbase as the main backend database for our mobile data collection SaaS platform. We need to be able to collect any data that is valuable to our customers, and the Couchbase platform enables us to do that without having to worry about relational tables and schemas.
  • Key/value data store. Couchbase is blazing fast at data access and retrieval when you know what keys you want to access.
  • Data querying with N1QL. If you have your indexes set up right, searching your unstructured data can be really fast too.
  • Management dashboard. The Couchbase platform has a great admin panel that provides tons of insights into how your cluster is performing.
  • The Couchbase mobile suite is great, in theory. In practice we have found the sync to be somewhat unreliable, to the point where we had to write our own logic to push data to the server. We have not had a chance to upgrade to the new 2.0 version of mobile yet, so these issues may have been resolved there.
  • 5 years later, the sync gateway component still isn't integrated into the main data platform. The Couchbase platform does a really great job at letting you independently scale services, but the sync gateway is still a standalone component. I get the feeling there is a rift between the Couchbase mobile team and Couchbase server team, or possibly that the Couchbase mobile product is just a side project or second-class citizen in the Couchbase world.
  • One of the reasons that initially drew us to Couchbase was their touted dedication to open source development. Over the past year or so, they have really backed off on that. At the 2018 Couchbase connect conference, I didn't even hear the phrase 'open source' mentioned once. If you really dig into the source code that is available, you'll find that pretty much all new features are being developed closed-source in private repositories. So while you can build the 'community edition' yourself, it's not even close to what the full platform offers. So if you do hear any mention of 'Couchbase is open source', be aware that it's a bit of a facade.
  • The Couchbase data platform has made our product possible. We flat out wouldn't be able to do what we're doing on a traditional RDBMS.
Couchbase has a built in multi-dimensional scaling tool that lets you independently scale the services you need. I'd give it a 10 if I could scale the sync gateway this way too.
If you have everything set up right, Couchbase is quite fast. We're handling millions of records with thousands of users querying the data simultaneously. Achieving this level of performance can be difficult and requires a deep understanding of the N1QL engine and how data indexing works. Traditional RDBMS systems figure out a lot of the indexing challenges for you, so if you go in to Couchbase expecting it to 'just work' at scale, you'll be disappointed. Spend the time to learn the product, and you can make it do some pretty amazing things.
The ability to support flexible data modeling has made our product possible. We make a mobile data collection platform that is totally configuration driven, and works for any vertical market we throw at it. That's because our data isn't tied to any particular schema. If we need to change the way a for looks or behaves, we just do it and save the new data to the DB - it doesn't care. If we needed to manage RDBMS tables for each data form / workflow we support, we simply wouldn't be able to scale.
We use Couchbase mobile heavily. I wouldn't say it's 'easy' to sync data to mobile apps. In practice, we have found the sync engine to be unreliable. When we first deployed Couchbase mobile at scale in 2016, we were plagued with sync issues and missing data. We worked for months trying to resolve these issues until we finally decided to write our own engine to push data from mobile to server. Today in production we use Couchbase mobile's sync engine to pull data down from the server, but use our own to push it back up. In our experience, Couchbase mobile was pretty terrible at detecting cell connection drops, incomplete / aborted syncs, phantom cell connections, etc. so we took it into our own hands.

That being said, we are still using version 1.5 of Couchbase mobile. I'm aware that Couchbase did a full rewrite of their sync engine for 2.0, but we haven't upgraded to it yet, mainly because stability has not been a strength of the Couchbase mobile team. We were there during the 1.0, 1.1, 1.2 era and I can say that bugs abounded and fixes were released slowly. So we're giving 2.0 a lot of time to mature before we jump on the bandwagon.
When we began using Couchbase in 2014, nobody else provide a query engine for unstructured data. We haven't reevaluated competitors since.
If you're looking to store millions of data records for millions of users, where each user only accesses a couple of documents (auth, user profiles, private data store), you can't beat Couchbase for performance or scale.

If you want to store tons of data records with varying schemas or totally unstructured data, Couchbase is also a great fit. Their N1QL engine is pretty amazing and pretty fast, but don't expect SQL level performance.

If you're building a simple application with traditional relational data and on a tight budget, I'd say stick with something like Postgres.

Couchbase Feature Ratings

Data model flexibility
Deployment model flexibility