Skip to content

Cassandra

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

Developer Experience

Cassandra is new to me and my first impression is that it feels a lot like working with a traditional SQL database, like mysql or postgres. Getting started was rather straightforward. It is a good sign that cassandra is easy to run inside docker on my laptop and is available as a managed database in all major clouds as well.

Query API or DSL

Cassandra uses its own query language called CQL. As data is stored in tables with rows and columns CQL is designed to resemble SQL. This means that developers familiar with traditional SQL databases instantly feel at home working with CQL and Cassandra. To me trying out Cassandra and writing code for the basic CRUD operations felt exactly like working with MSSQL, MySQL and Postgres.

Support for hierarchies (documents in documents, etc)

Yes and no. It seems fully possible to treat Cassandra as a traditional, normalized database. When I read about data modeling in Cassandra however the recommendation seems to be to model your data from how it is to be read (or written).

Read more: https://www.datastax.com/blog/basic-rules-cassandra-data-modeling

Platform and language support (besides JS/TS)

There's a bunch of drivers.

Deployment options

Easy to run their docker image locally. Extensive clustering capability with fault tolerance and such. Managed cloud deployment options.

Serialisation support (JSON, others?)

Supports class serialization in C# for example.

Pros

  • Very straightforward if you are familiar with SQL
  • Straightforward docker deployment
  • Has several managed hosting options
  • Lots of SDKs
  • Fault-tolerant
  • Scalable

Cons

  • A bit of a learning curve if you are unfamiliar with SQL
  • You need to create a keyspace before you can store data