I’m building a series of small do-one-thing-really-well services, mostly using Fly. The first one is https://zips.dev – a file zipping API. I’ve had to build this before at companies I’ve worked with to send users all of their data, send thousands of license files to server managers, package all the invoices for a year, that kind of thing.
I’m setting it to run globally, so folks who use it should get excellent performance wherever they are. Data stored in AWS in the US East and Singapore regions using DynamoDB Global Tables, and the Fly apps run against the closest region by taking a latency measurement on startup, using https://github.com/sudhirj/aws-regions.go
S3 buckets are also cross region replicated in both regions, and because the replication there tends to be much slower I go down the latency sorted list until I find the object I’m looking for or the list is exhausted.
Development has been a breeze so far… if this takes off my biggest expense will be Fly bandwidth, so definitely watching what’s happening with that. I’m also planning to implement cluster based caching, so I’d like to see the inter-container port coming out of experimental and documented, and free or discounting pricing for bandwidth between my own containers.
Also happy to help if anyone else needs assistance with figuring out global data systems for their Fly apps.