My use case requires syncing a read only folder with 2,000 files, 1.5GB data to 1 million Android devices.
Is that possible if accomplished in stages of sharing and resharing?
It seems that the weak point is the device that is resharing the 2,000 files that it has itself has received by sync. How many peers can the input and output swarms be before the phone in the middle passing on the cascading sync to the next swarm begins to suffer?
Connections to other devices cost CPU and RAM (and hence battery, on a phone). I’d keep it on the order of the low tens on a phone. It doesn’t sound to me like Syncthing is the ideal candidate for what you want to do, probably.
as @AudriusButkevicius said you have no control over the devices that are not shared with your server directly, so I think Syncthing is not the best/easiest way to go.
Go with a simple app that downloads a list cointaing urls/hashes from a central server to a folder on the device. If a files is missing/changed it is downloaded again. pros: you have control; user does not need to know anything besides installing app; you can delete/update files remotely cons: bandwith
create a (weekly) torrent file containing all files, maybe split into courses for smaller download size pros: fast downloads; bandwidth saving; no extra app from you needed; if you always name folder same existing files should be reused cons: torrent app needs to be installed; users may exceed their bandwidth usage; you cannot delete files remotely