= Multipoint Considerations
:index-group: Discovery and Failover
:jbake-date: 2018-12-05
:jbake-type: page
:jbake-status: published


== Network size

The general disadvantage of this topology is the number of connections
required. The number of connections for the network of servers is equal
to `(n * n - n) / 2`, where n is the number of servers. For example,
with 5 servers you need 10 connections, with 10 servers you need 45
connections, and with 50 servers you need 1225 connections. This is of
course the number of connections across the entire network, each
individual server only needs `n - 1` connections.

The handling of these sockets is all asynchronous Java NIO code which
allows the server to handle many connections (all of them) with one
thread. From a pure threading perspective, the option is extremely
efficient with just one thread to listen and broadcast to many peers.

== Double connect

It is possible in this process that two servers learn of each other at
the same time and each attempts to connect to the other simultaneously,
resulting in two connections between the same two servers. When this
happens both servers will detect the extra connection and one of the
connections will be dropped and one will be kept. In practice this race
condition rarely happens and can be avoided almost entirely by fanning
out server startup by as little as 100 milliseconds.
