The manager app is not in the hot path with this design so performance doesn’t matter all that much.
If you need a hand let me know, I’ve built pretty large CDNs before (10M r/s at peak)
Thanks for the offer! I might just take you up on it :)
This statement makes no sense. A CDN edge node is just a cache; its size and your access patterns determine the hit ratio.
At $dayjob we get Nginx cache hit ratios on our edge in excess of 99% for “an origin fetch” setup. That is a very large benefit.
Cloudflare works entirely on origin fetch. They seem to be doing okay.
I've been considering building my own but getting an up and running gossip protocol to have it share data between nodes isn't the easiest thing in the world to code.
I wrote the CDN in Go, with Redis and a smaller go-powered daemon to retrieve assets every 20 seconds, sync them to a local storage drive, and after 5 days retrieve again - or, if there is no requests within 48 hours, clear the unused items.
Then I setup a system that if one edge requests an “unpopular” file, it’ll ping a simple REST API and have all the other edges pull that file, this allowing the edges to stay “one step ahead” of the user load