Practical upper limit of peers

I’m curious to know what are the practical or theoretical limits on a syncthing cluster of peers. Would it be practical or realistic to use it as a private CDN of sorts for say 10000, 100000, 1000000 peers or more?

Think of a send only configuration. So no need for syncing file changes from other peers. Likely some kind of interface would have to be created that could sit on top of syncthing and interact with the rest API. Is something like this theoretically possible?

There will indeed be a practical limit somewhere along the way, although I don’t think we’re sure today what it is. Even for send-only setups, the send-only device keeps track of the other devices’ contents for calculating completion percentages etc. That doesn’t scale to infinity. Even if it didn’t, maintaining thousands and tens of thousands of sync connections is probably fine for a powerful machine … but hundreds of thousands? I’m skeptical. What we typically recommend for large setups is a tree structure of some sort. A couple of central devices at the top/root of the tree, communicating with a cluster of second level devices, each of which can distribute to a bunch of local devices.

As for managing this with thousands of devices, yes, you need some system on top of it. I’m developing such a system at the moment, commercially. Others probably deploy using chef/ansible/puppet/etc if they already have that in place and I’m sure that works fine too.

2 Likes