code: public Completable connect() {
      if (!conductor.disconnected()) {
        // short-circuit connect attempt if the conductor is already connecting/connected.
        LOGGER.debug("Ignoring duplicate connect attempt, already connecting/connected.");
        return Completable.complete();
      }
  
      if (env.dataEventHandler() == null) {
        throw new IllegalArgumentException("A DataEventHandler needs to be provided!");
      }
      if (env.controlEventHandler() == null) {
        throw new IllegalArgumentException("A ControlEventHandler needs to be provided!");
      }
      LOGGER.info("Connecting to seed nodes and bootstrapping bucket {}.", meta(env.bucket()));
      return conductor.connect().onErrorResumeNext(new Func1<Throwable, Completable>() {
        @Override
        public Completable call(Throwable throwable) {
          return conductor.stop()
              .andThen(Completable.error(new BootstrapException("Could not connect to Cluster/Bucket", throwable)));
        }
      });
    }
docs: Initializes the underlying connections (not the streams) and sets up everything as needed.
  
  @return a {@link Completable} signaling that the connect phase has been completed or failed.