When to consider what type of database:

  • Relational: when referential integrity with strong consistency is needed.
  • Key-value: when access patterns require low-latency Gets/Puts for known key values.
  • Document: when you want developers to use something intuitive. Data in the application tier is typically represented as a JSON document.
  • Graph: when working with highly connected datasets.
  • In-memory: when you need microsecond response times and expect large spikes in traffic coming at any time.
  • Search: when you need to index and search semi-structured logs & data.

Full post here, 7 mins read