Skip to content

Default DB

Alexander Czigler edited this page Jun 14, 2022 · 18 revisions

Default DB

We would like to find a default database that is our go-to option when setting up a new project. While we are in the process of selecting the right db for us this page holds a summary of the pros and cons of the different options.

Selection process

Needs (What is important?)

  • No-SQL
  • Long-term support
  • Support various platforms/languages
  • Support for hierarchies (documents in documents)
  • Easy to deploy yet capable of scaling (and cloud compatibility)

Wants (What is nice to have?)

  • Subscription to changes
  • Migrations (versioning) tooling

TODO

  • Compare costs when self-hosting
  • Compare costs in managed cloud
  • Compare drivers/platform/language support
  • Compare versioning/migration tools

Candidates

MongoDB

Pros

  • Easy to use
  • Developer friendly
  • Simple
  • Scalable
  • Managed in AWS, Azure, GC

TODO

  • Test change streams

Apache Cassandra

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.

Pros

  • Very straightforward if you are familiar with SQL
  • Straightforward docker deployment
  • Has several managed hosting options
  • 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

Apache CouchDB

Pros

  • HTTP REST API

Cons

  • Write operations do not lock db; conflicts need to be handed in the application code
Clone this wiki locally