When it comes to meshing and dynamic routing one of the biggest challenges is to make your cluster as big and as redundant as possible and still perform very well. So there is a tradeoff between size + redundancy on the one side and performance on the other.
Imagine there was a full mesh, meaning each node will have a peering with each other node. This would be ideal in terms of redundancy. At the same time it would be the least ideal situation in terms of scalability. You can approach this problem by either
As the cheapest and least intricate one is planning and implementing the best topology. Here is how.
This image is depicting several aspects at the same time.
Let's try a top to bottom approach where the core of the Internet where BGP is spoken is at the very top. In the middle we see red Supernodes interconnected to each other in a high availability fashion, meaning no supernode has < 2 links to other supernodes.
tbc.
In short, the best topology is having multiple ring topologies. A ring maybe be loosing one or more links and may still function for the majority of participants. At the same time it does not have too much redundancy. Too many links might create slower transfers speeds and slow convergence. Just build a bus but make sure to somewhere get back together and form a ring. Houses are usually next to each other. Just interconnect yourselves and close the loop somewhere obvious.
So we will be creating multiple rings. Those rings need to have junctions where Multinodes appear. Those multinodes will make sure two or more rings are being connected.