code: function Client(option) {
  
    option = option || {};
  
    // seed hosts
    var hosts = option.hosts || option.host;
    if (!hosts || hosts.length === 0) {
      throw new Error('`hosts` required to create client');
    }
  
    if (typeof hosts === 'string') {
      hosts = [hosts];
    }
  
    this._seeds = hosts;
    this._conns = [];
    this._connsPerHost = option.connsPerHost || 2;
    this._connectRoundRobin = 0;
    this._connectTimeout = option.connectTimeout || 5000;
    this._connectWaitQueue = [];
    this._reconnectInterval = option.reconnectInterval || 5000;
    this._autoDetect = !!option.autoDetect;
    this._keyspace = option.keyspace;
  
    this._protocolVersion = option.protocolVersion || 2;
    // set default consistency level
    var cl = (option.cl || option.consistencyLevel || 'quorum').toUpperCase();
    if (cl in protocol.CL) {
      this._consistencyLevel = protocol.CL[cl];
    } else {
      throw new Error('Invalid consistency level ' + cl);
    }
    this._maxWaitPerConns = option.maxWaitPerConns || 100;
  
    // auto connect to seed
    setImmediate(this.connect.bind(this));
  }
docs: Create client
  @constructor
  @param {object} option - optional parameters
  @param {array} option.hosts - seed hosts to connect to get peers. ex) [127.0.0.1:9402,127.0.0.2:9042,.. ]
  @param {string=} option.consistencyLevel - default consistency level (one,two,three,quorum,local_quorum,each_quorum,all,any). default is quorum.
  @param {number=} option.connectTimeout - milli-seconds until timeout
  @param {number=} option.connsPerHost - number of connections to be used per hosts. default is 2
  @param {number=} option.reconnectInterval - interval milliseconds for waiting next attemp to reconnect
  @param {number=} option.protocolVersion - native protocol version. default is 2
  @param {number=} option.maxWaitPerConns - maximum number of request to be accepted per connection
  @param {boolean} optino.autoDetect - detect peers automatically