private Configuration createRemoteCacheManagerConfiguration() {
    ConfigurationBuilder config = new ConfigurationBuilder();
    for (RemoteInfinispanServer server : getServers()) {
      config
          .addServer()
          .host(server.getHotrodEndpoint().getInetAddress().getHostName())
          .port(server.getHotrodEndpoint().getPort());
    }
    config
        .balancingStrategy(
            "org.infinispan.server.test.client.hotrod.HotRodTestRequestBalancingStrategy")
        // load balancing
        .balancingStrategy(
            "org.infinispan.client.hotrod.impl.transport.tcp.RoundRobinBalancingStrategy")
        // list of HotRod servers available to connect to
        // .addServers(hotRodServerList)
        .forceReturnValues(false)
        // TCP stuff
        .tcpNoDelay(true)
        .pingOnStartup(true)
        .transportFactory("org.infinispan.client.hotrod.impl.transport.tcp.TcpTransportFactory")
        // marshalling
        .marshaller("org.infinispan.commons.marshall.jboss.GenericJBossMarshaller")
        // executors
        .asyncExecutorFactory()
        .factoryClass("org.infinispan.client.hotrod.impl.async.DefaultAsyncExecutorFactory")
        .addExecutorProperty("infinispan.client.hotrod.default_executor_factory.pool_size", "10")
        .addExecutorProperty(
            "infinispan.client.hotrod.default_executor_factory.queue_size", "100000")
        // hashing
        .keySizeEstimate(64)
        .valueSizeEstimate(512);

    if (isDistributedMode()) {
      config.consistentHashImpl(
          1, "org.infinispan.client.hotrod.impl.consistenthash.ConsistentHashV1");
    } else {
      config.consistentHashImpl(
          2, "org.infinispan.client.hotrod.impl.consistenthash.ConsistentHashV2");
    }

    return config.build();
  }