code: public static SynchronizedGeneratorIdentity basedOn(String quorum,
                                                          String znode,
                                                          Long claimDuration)
              throws IOException {
          ZooKeeperConnection zooKeeperConnection = new ZooKeeperConnection(quorum);
          int clusterId = ClusterID.get(zooKeeperConnection.getActiveConnection(), znode);
          Supplier<Duration> durationSupplier = () -> Duration.ofMillis(claimDuration);
  
          return new SynchronizedGeneratorIdentity(zooKeeperConnection, znode, clusterId, durationSupplier);
      }
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 claimDuration How long a claim to a generator-ID should be held, in milliseconds.
  @return A {@link SynchronizedGeneratorIdentity} instance.