An interface for selecting a server from a cluster according to some preference.
A server selector that composes a list of server selectors, and selects the servers by iterating through the list from start to finish, passing the result of the previous into the next, and finally returning the result of the last one.
A server selector that accepts only servers within the given ping-time latency difference from the faster of the servers.
A server selector that chooses based on a read preference.
A server selector that chooses a server that matches the server address.
A server selector that chooses servers that are writable.