Couchbase: Blistering performance at scale for enterprises
Use Cases and Deployment Scope
Couchbase is being used across our entire organization as the primary database for our platform. It addresses the need for sub-millisecond db transactions at hundreds of thousands of high-availability transactions per second[.]
Pros
- Couchbase performance is exceptional both for in-memory and persisted transactions.
- Handling of node failures and cluster rebalancing (high availability).
- Enterprise support from Couchbase themselves
- Good documentation
- Streaming of bucket (database) level mutations via their Database Change Protocol (DCP).
- Replication of datasets between native clients and Couchbase buckets
- Handling of simultaneous writes to the same record with performance penalties
Cons
- SDK examples are not always clear enough and don't cover enough scenarios.
- Setting up and managing a large, high performance cluster is not easy without significant assistance from Couchbase themselves. There needs to be more tutorials \ documentation for enterprise scenarios.
- Full text search, while not a primary feature, is not sufficiently performant in Couchbase, so Elasticsearch is still needed. Couchbase has a good integration for moving data to Elasticsearch so this is not very painful. It's possible that the performance has improved in the latest version as we have not yet tested it for FTS.
- Poor performance and support for synchronization of web based apps (PWA's etc)
Return on Investment
- Massive concurrency enabling an enormous scale for our platform
- Super-fast transactions enabling a real-time experience across multiple clients
Alternatives Considered
Amazon DynamoDB, MongoDB, Amazon Elasticsearch Service and Elasticsearch
Other Software Used
Amazon Managed Streaming for Apache Kafka (Amazon MSK), Amazon Aurora, Amazon CloudFront, Amazon Elastic Container Service (Amazon ECS), Amazon DynamoDB



