The architecture-shrinking pattern
Most teams reach for specialist databases because PostgreSQL looks general-purpose and therefore not best-in-class for any one job. The reality: PostgreSQL is best-in-class at most jobs — and the integration cost of running four specialist systems usually swamps the marginal performance gain of any one.
Where PostgreSQL is "good enough"
- Document store: JSONB + GIN replaces MongoDB for almost all use cases.
- Full-text search: tsvector + GIN replaces Elasticsearch for most use cases under a billion documents.
- Vector search: pgvector + HNSW replaces dedicated vector DBs under ~10M vectors.
- Geospatial: PostGIS is genuinely best-in-class — no compromise.
- Time-series: TimescaleDB extension makes Postgres a strong time-series DB.
- Cache layer:
UNLOGGEDtables + LISTEN/NOTIFY can replace Redis for many use cases. - Message queue: SKIP LOCKED job queues replace lightweight Celery/SQS for many use cases.
The honest exceptions
Genuine specialist tools win when you're past their scale point: petabyte analytics warehouses (BigQuery, Snowflake), sub-millisecond cache (Redis), millions of writes per second (Cassandra), real-time streams (Kafka). For everyone else: start with Postgres, add specialists when measured pain forces you to.