class BeamFnStateGrpcClientCache {

  public BeamFnStateClient forApiServiceDescriptor(ApiServiceDescriptor apiServiceDescriptor)
      throws IOException {
    return cache.computeIfAbsent(apiServiceDescriptor, this::createBeamFnStateClient);
  }

  public  BeamFnStateGrpcClientCache(
      IdGenerator idGenerator,
      Function<Endpoints.ApiServiceDescriptor, ManagedChannel> channelFactory,
      OutboundObserverFactory outboundObserverFactory);

}