For data that must be saved and stored correctly, we use
PostgreSQL (we usually refer to it as "Postgres").
It's a 30 year old open source database that is highly respected, well supported
by documentation and hosting providers, and used by any developer who knows the
In recent years, a movement called NoSQL
has gained popularity. Best translated as "not only SQL", tremendous effort has
been made to create different kinds of databases for different use cases, often
based off academic or industry research.
Our most frequently used NoSQL database is Redis, which we
use for storing transient, high quantity read/write data such as activity feeds,
tags, background jobs, sessions, tokens, and counters.
Redis is reliable, open-source, and simple. It offers high performance and
reliable predictions of its performance. It can flexibly model different data
sets but we typically use it for small data structures, not large images,
videos, or text documents.
We typically use Heroku Redis to host our
production Redis databases.