code: public Optional<Server> chooseRoundRobinAfterFiltering(List<Server> servers) {
          List<Server> eligible = getEligibleServers(servers);
          if (eligible.size() == 0) {
              return Optional.absent();
          }
          return Optional.of(eligible.get(incrementAndGetModulo(eligible.size())));
      }
docs: Choose a server in a round robin fashion after the predicate filters a list of servers. Load balancer key
  is presumed to be null.