code: public CompletionStage<ClusterComposition> lookupClusterComposition( RoutingTable routingTable,
              ConnectionPool connectionPool )
      {
          CompletableFuture<ClusterComposition> result = new CompletableFuture<>();
          lookupClusterComposition( routingTable, connectionPool, 0, 0, result );
          return result;
      }
docs: Given the current routing table and connection pool, use the connection composition provider to fetch a new
  cluster composition, which would be used to update the routing table and connection pool.
  
  @param routingTable current routing table.
  @param connectionPool connection pool.
  @return new cluster composition.