Syncthing device topology

So, I’m a little confused about what the ideal topology for connecting devices in Syncthing should be.

I’ve got 5 devices that are sharing a number of folders. For folders shared between 2+ devices I, of course, want changes to propagate to all the machines in a reasonable timeframe. I have the introducer activated for most of my devices and those devices all have visibility to each other. For shared folders, I am explicitly sharing the folder between all devices. E.g.: I have Machines A, B and C sharing folder ‘foo’. On Machine A, I’m sharing foo with B and C. On machine B, I’m sharing with A and C. On C, I’m sharing with A and B.

Is this the correct way to do it? I’ve seen some posts that seem to indicate that this will unnecessarily increase the communication overhead. Should I be using a single device as a central hub to coordinate the synchronization?
E.g.: Device B is the hub. A shares only with B. C only shares with B and B shares with all the other machines (A & C).

Does this hub topology achieve the same effect?

Does this have lower or identical overhead to the mesh network I’m using now?

It would be nice to have a quick blurb in the documentation that explicitly describes the optimal way to network Syncthing devices.

My personal view which might not be correct:

I guess it doesn’t matter that much in reality, as it is fetching up to 16 blocks concurrently per folder anyway, so the more devices you have the less load will be on a single providing node. From the receiving node, you are still fetching 16 simultaneous blocks regardless where from.

I personally think it’s have an all-to-all mapping, as this way you have redundancy, plus you will saturate the network better (just like torrent does in some sense). This obviously stops scaling at some point (and might cause issues with number of open connections), but until you have a few hundreds of devices it will not matter that much.

Thanks! I’ll just keep it as an all-to-all mapping then.