Open Source Relational Database with great standards compliance, lots of extensibility and advanced features. Also check Embrace modern SQL.
Note: Because we at sandstorm do not have too much Postgres operational experience yet, we rated Postgres as TRY instead of adopt.
- feature packed and standards compliant
- many advanced data types, like:
- range (e.g. time range), including constraints like "two ranges are not allowed to overlap"
- time intervals
- point (lat/long)
- advanced extensions directly shipped with core, e.g.
- quite sophisticated fulltext indexing directly embedded (not as fancy as Elasticsearch, but a lot more sophisticated than e.g. in Mariadb/MySQL!), see this blog post for a good introduction. It is also possible to speed up LIKE searches using trigram indices!
- many external extensions available, e.g.:
- to scale out, open source CitusDB can be used (also implemented as postgres extension)
- advanced features supported, as described on Embrace modern SQL
- the WAL (Write Ahead Log) can be used for Change Data capture, as described in this blog post: This can be used as something like a "poor-mans Event Log" (not capturing intent, but at least capturing state changes). You can find more about this topic in The Log and Event Sourcing.
- not good UI (like sequel pro for MariaDB/ MySQL). best I found: pgweb, psql, pgcli
- most people are "operationally" used to Mariadb / MySQL
Our usage at Sandstorm
- we install postgresql through homebrew (brew install postgresql; brew services run postgres; createdb)