public static CompletableFuture<AsyncConnection> createAsyncConnection(Configuration conf,
    final User user) {
    return createAsyncConnection(null, conf, user);
  }
Create a new AsyncConnection instance using the passed {@code conf} and {@code user}.
AsyncConnection encapsulates all housekeeping for a connection to the cluster. All tables and
interfaces created from returned connection share zookeeper connection, meta cache, and
connections to region servers and masters.
<p>
The caller is responsible for calling {@link AsyncConnection#close()} on the returned
connection instance.
<p>
Usually you should only create one AsyncConnection instance in your code and use it everywhere
as it is thread safe.
@param conf configuration
@param user the user the asynchronous connection is for
@return AsyncConnection object wrapped by CompletableFuture
hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionFactory.java