code: public static SynchronizedGeneratorIdentity basedOn(String quorum,
                                                          String znode,
                                                          Supplier<Duration> claimDurationSupplier)
              throws IOException {
          ZooKeeperConnection zooKeeperConnection = new ZooKeeperConnection(quorum);
          int clusterId = ClusterID.get(zooKeeperConnection.getActiveConnection(), znode);
  
          return new SynchronizedGeneratorIdentity(zooKeeperConnection, znode, clusterId, claimDurationSupplier);
      }
docs: Create a new {@link SynchronizedGeneratorIdentity} instance.
  
  @param quorum                Addresses of the ZooKeeper quorum (comma-separated).
  @param znode                 Root znode of the ZooKeeper resource-pool.
  @param claimDurationSupplier Provides the amount of time a claim to a generator-ID should be held. By using a
  {@link Supplier} instead of a static long, this may dynamically reconfigured at
  runtime.
  @return A {@link SynchronizedGeneratorIdentity} instance.