code: public static BeadledomClientBuilder newBuilder() {
      ServiceLoader<BeadledomClientBuilder> clientBuilderLoader =
          ServiceLoader.load(BeadledomClientBuilder.class);
  
      Iterator<BeadledomClientBuilder> iterator = clientBuilderLoader.iterator();
  
      if (!iterator.hasNext()) {
        throw new IllegalStateException(
            "An implementation of BeadledomClientBuilder was not found");
      }
  
      return iterator.next();
    }
docs: Return a new instance of {@code BeadledomClientBuilder} by looking for an implementation
  on the classpath using SPI.
  
  <p>If the SPI finds more than one implementation of {@link BeadledomClientBuilder} in the
  classpath then it always creates the ClientBuilder for the implementation that comes first on
  classpath. So it is non-deterministic that which client implementation will be created at
  runtime.
  
  <p>However, if a specific implementation is required then the consumer should use the
  implementation specific Factory class method #create to create the builder.