(Replying to PARENT post)

Running a Fly app backed by DynamoDB Global Tables is an option. DDB keeps a copy of your data in all the regions you specify, each Fly instance can connect to the nearest region, and writes are propagated with eventual consistency & last write wins.

And most Redis commands can be mapped to DDB, I worked on a lib to do that.

https://github.com/dbProjectRED/redimo.go

https://github.com/sudhirj/aws-regions.go

https://aws.amazon.com/dynamodb/global-tables/

👤sudhirj🕑3y🔼0🗨️0

(Replying to PARENT post)

The other option here is using Spanner from Google (https://cloud.google.com/spanner) which now has full PostgreSQL compatibility.

That gets you global scalability with minimal meaningful changes to your application at all. They even made a Rails specific guide for it here

https://cloud.google.com/blog/topics/developers-practitioner...

If you combined that with say Cloud Native Buildpacks (buildpacks.io) and Cloud Run you now have basically an infinitely scalable solution that happens to hook into all of Google’s infrastructure at just the right points that requires almost zero work on your behalf. Plus you get to keep the one command to deploy that a lot of the Rails community is used to from the Heroku days.

No K8s to configure, no servers to maintain, per second billing on your app server, everything autoscales, very little to learn in the way of new technology. You can complicate things at your own pace as far as the rest of “the cloud” goes but there’s no need to do so unless you want to. It’s a pretty sweet deal in terms of cost to benefit ratios.

👤mhoad🕑3y🔼0🗨️0

(Replying to PARENT post)

Yes, lets throw data integrity out the window and make schemas changes painfully tedious and hard.
👤Scarbutt🕑3y🔼0🗨️0

(Replying to PARENT post)

Does DynamoDB give transactions, rollbacks, joins?
👤thrwn_frthr_awy🕑3y🔼0🗨️0