Between plain old horizontal scaling via custom sharding, replicas, and extensions like Citus and Timescale that offer full horizontal scalability, Postgres is handling some of the biggest use cases in the world.
And it comes with a bunch of caveats. It's bolted-on horizontal scaling, vs MongoDB where that's the main feature. Yes I still prefer Postgres in general, but it's fair to point out that weakness of it.
Citus was acquired by Microsoft so there are doubts about its future longevity given that so many similar promises of ongoing support are rarely maintained. Timescale is optimised for time-series so not sure it's applicable.
Point still remains that PostgreSQL lacks a modern, built-in horizontal scalability solution.
Well let's see how long Google's Spanner lasts. It's designed to support huge-scale systems, and personally I'd be terrified locking a huge system into that.
Fair, but this is getting fixed. Postgres 16 (which was just released) adds an origin tag to logical replication, so that you can know whether or not to pass on a change (and avoid having an infinite loop where a change is replicated back and forth). That's the first step to having multiple mains. I think in theory, if you had deep Postgres knowledge, you could set up a high touch, bespoke multi-main deployment today.
I expect the replication story with Postgres will get much better over the next few years.