public PersistentCassandraDrain(
      E environment, String username, String password, String[] seeds, String keyspace) {
    Cluster.Builder builder = Cluster.builder().addContactPoints(seeds);
    builder.withReconnectionPolicy(new ExponentialReconnectionPolicy(500, 60_000));
    if (username != null) {
      if (password != null) {
        builder = builder.withCredentials(username, password);
      } else {
        logger.warn("username was set, password was NOT set - IGNORING username!");
      }
    }

    this.environment = environment;
    this.cluster = builder.build();
    this.keyspace = keyspace;
    this.session = cluster.connect(keyspace);
  }