A decade ago the choice between SQL and NoSQL felt civilizational. Today it is mostly boring, which is exactly the right place for it to be.
SQL Has Quietly Won the General Case
Modern Postgres handles JSON, full-text search, time series, and horizontal scaling well enough that most teams will never outgrow it.
NoSQL Still Wins Specific Shapes
- Massive write throughput with eventual consistency
- Documents whose schemas truly vary per row
- Wide-column or graph workloads where the relational model fights you
The Real Question
What do your access patterns look like, and what are your operational constraints? Pick the simplest database that fits, not the trendiest.
Conclusion
The default should be relational. The exceptions should be deliberate. That is the whole answer.
