Swiss army knife, sharpened
Most databases pick a lane. PostgreSQL refuses. The same engine that runs your OLTP workload also handles document storage, full-text search, geospatial queries, vector similarity, and analytical aggregations. A correctly sized Postgres instance can replace three or four specialised systems in many architectures, and you only need one operational story instead of four.
The headlines
- JSONB — document storage with B-tree, GIN, and expression indexing. Queries inside JSON are first-class.
- Full-text search with
tsvector,tsquery, ranking, and stemming for many languages — usually enough that you don't need Elasticsearch. - Rich type system — arrays, enums, ranges, custom composites, and generated columns.
- Window functions, CTEs, lateral joins, MERGE — every modern SQL feature, usually before the competition.
- Extensions — PostGIS (geospatial), pgvector (AI embeddings), TimescaleDB (time-series), pg_trgm (fuzzy search), pg_stat_statements (query telemetry).
- Logical replication — replicate tables (not whole clusters) across versions for blue/green migrations.
The quiet superpowers
LISTEN/NOTIFY turns Postgres into a low-throughput message bus. Row-level security pushes multi-tenant rules into the database itself. EXCLUDE constraints prevent overlapping ranges in scheduling apps. Each of these eliminates an external dependency — and the operational cost that comes with it.