For data that must be saved and stored correctly, we use PostgreSQL (we usually refer to it as "Postgres"). It's a thirty-year-old open source database that is highly respected, is well supported by documentation and hosting providers, and can be used by any developer who knows the SQL standard.


A guide to installing Postgres in any environment can be found in Postgres Installation Tutorial.

If you are using Docker, you can create your database inside a container using the Postgres image.

NoSQL Databases

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 on 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.

To install Redis you must download the sources and compile it:

tar xzf redis-4.0.8.tar.gz
cd redis-4.0.8

If you are usign Docker, you can use the Redis image.

Another NoSQL database is Cassandra which we use for storing time series. The differents ways of install Casandra are documented here.

Redis and Cassandra are reliable, open-source, and simple. They offer high performance and reliable predictions of its performance.


When we need to do full-text search on documents, we use Solr. Its major features include hit highlighting, faceted search, real-time indexing, dynamic clustering, database integration, and rich text documents handling.

Amazon Relational Database Service (RDS)

For production environments we suggest using RDS. RDS makes it easy to set up, operate, and scale a relational database in the cloud.

Some of the features that RDS provides that are helpful for us are:

  • Easy to Administer

  • Highly Scalable

  • Fast

  • Secure

  • Replication

RDS is compatible with the following databases engines: