code: public void init() throws IOException {
      Injector injector = Guice.createInjector(
          new ConfigModule(conf),
          new ZKModule(),
          new DiscoveryModules().getDistributedModules(),
          new TransactionModules().getDistributedModules(),
          new TransactionClientModule()
      );
  
      zkClient = injector.getInstance(ZKClientService.class);
      zkClient.startAndWait();
      txClient = injector.getInstance(TransactionServiceClient.class);
  
      createTableIfNotExists(conf, TABLE, new byte[][]{ FAMILY });
      conn = HConnectionManager.createConnection(conf);
    }
docs: Sets up common resources required by all clients.