Currently, each client tries to connect to a random bootstrap server. Once the connection is established and successful, the bootstrapping process is over. This means that bootstrapping only requires a single server.
As a consequence, two independent network components cannot start connecting to each other. Even when a multi client knows multiple independent bootstrap servers, each node in its pool will become part of these clusters without knowing about the other siblings in the pool (which may be part of another cluster).
This could be fixed by an altered bootstrapping process: instead of going all in on the first successful bootstrap server found, single bootstrap requests (establishing one up- and downstream connection each) could be issued to random bootstrap servers. This would allow new nodes to connect to multiple disconnected components, hence allowing clusters to merge.
Currently, each client tries to connect to a random bootstrap server. Once the connection is established and successful, the bootstrapping process is over. This means that bootstrapping only requires a single server.
As a consequence, two independent network components cannot start connecting to each other. Even when a multi client knows multiple independent bootstrap servers, each node in its pool will become part of these clusters without knowing about the other siblings in the pool (which may be part of another cluster).
This could be fixed by an altered bootstrapping process: instead of going all in on the first successful bootstrap server found, single bootstrap requests (establishing one up- and downstream connection each) could be issued to random bootstrap servers. This would allow new nodes to connect to multiple disconnected components, hence allowing clusters to merge.