Skip to content

Couchbase

Alexander Czigler edited this page Jun 20, 2022 · 4 revisions

Developer Experience

Couchbase is a bit different from the databases I am experienced with. I found it a bit confusing that I had to open the web UI and setup the database before I could start using it. I did not find a way to make the initial configuration using env variables or such.

Query API or DSL

The query API in node seems straightforward and reminds me of mongoDB. Couchbase also has a SQL-like DSL called N1QL.

Support for hierarchies (documents in documents, etc)

Yes.

Documents can contain nested structures. This allows developers to express many-to-many relationships without requiring a reference or junction table; and is naturally expressive of hierarchical data.

Platform and language support (besides JS/TS)

There are SDKs for all the major languages as well as mobile SDKs and connectors for big data applications and ODBC/JDBC drivers.

Deployment options

Available as docker image for self-hosting and managed service in the cloud.

Serialisation support (JSON, others?)

The Couchbase data model is based on JSON, which provides a simple, lightweight, human-readable notation. It supports basic data types, such as numbers and strings; and complex types, such as embedded documents and arrays. JSON provides rapid serialization and deserialization; is native to JavaScript; and constitutes the most common REST API return-type. Consequently, JSON is extremely convenient for web-application programming.

Summary

Pros

  • Docker image has a web UI for administration
  • Managed service available
  • Many SDKs and connectors/drivers

Cons

  • Needs a few clicks in the web UI before you can start using it locally
  • A bit of a learning curve to get started with