Earlier quoted context omitted.
This is the distribute-your-Rails-app-without-making-any-code-changes version of that story. It works great for apps that are 51% or more read heavy. You drop our library in, add a region, and off you go. The library takes care of eventual consistency issues. HTTP requests that write to the DB are basically the same speed as "Heroku, but in one place". If you're building infrastructure for all the full stack devs you…
It's also trivial to serve read requests from a caching layer or via a CDN. At any sufficient scale, you're probably going to need a CDN anyway, whether your database is replicated or not. You don't want every read to hit your database.
Right now your choices are: run a database in on region and:
1. Use the weird HTTP header based cache API with a boring CDN
2. Write a second, JS based app with Workers or Deno Deploy that can do more sophisticated data caching
3. Just put your database close to users. You can use us for this, or you can use something like Cloud Flare Workers and their databases.
My hot take is: if something like Fly.io had existed in 1998, most developers wouldn't bother with a CDN.
Weirdly, most Heroku developers already don't bother with a CDN. It's an extra layer that's not always worth it.