If it‘s feasable to shard data by user, you could put it in a close shard, most users don‘t move continents that much. I have never done this but as a latency nut I would like to try it sometime. Seems like Cloudflare‘s Persistent Objects kind of promises to do this automatically.
Then there are a lot of requests you can serve from read replicas or caches that can be close.
Cockroach has a neat and almost transparent way of doing this. If you key your tables by customer, it'll happily move those chunks of data to the nodes that need them most often.
We almost shipped cockroach but it's missing some Postgres features that most full stack frameworks rely on.
Then there are a lot of requests you can serve from read replicas or caches that can be close.