postgres is still the answer most of the time
we have launched a payments system, a marketplace, a real-time editor, and a lab-results api on top of plain postgres. none of them have hit the wall yet.
this is a longer version of the argument we made in the boring stack we keep recommending. the short version: most teams reach for a second data store too early, then spend the next year integrating two systems instead of building product.
jsonb covers schemaless
document storage with indexes, gin lookups, and a real query language. you do not need mongo until you actually need a different operational model, which is rarely.
tsvector covers search
it is not algolia. but for product catalogs, blog posts, and most internal tools, it is more than enough — and the data lives in the same transaction as the rest of your app.
where postgres is wrong
genuinely append-only event streams beyond a few thousand events per second. multi-region writes. graph traversals deeper than two hops. these are real, but rarer than you think.