public static ClusterOptions AddClusterService <TService, TImplementation>(
     this ClusterOptions clusterOptions,
     Func <IServiceProvider, TImplementation> factory)
     where TImplementation : notnull, TService =>
 clusterOptions.AddService <TService, TImplementation>(factory, ClusterServiceLifetime.Cluster);
 public static ClusterOptions AddClusterService <TService, TImplementation>(
     this ClusterOptions clusterOptions,
     TImplementation singleton)
     where TImplementation : notnull, TService =>
 clusterOptions.AddService <TService, TImplementation>(_ => singleton, ClusterServiceLifetime.Cluster);
 public static ClusterOptions AddClusterService <TService, TImplementation>(
     this ClusterOptions clusterOptions)
     where TImplementation : TService =>
 clusterOptions.AddService <TService, TImplementation>(ClusterServiceLifetime.Cluster);
 public static ClusterOptions AddClusterService <T>(
     this ClusterOptions clusterOptions,
     T singleton)
     where T : notnull =>
 clusterOptions.AddService <T, T>(_ => singleton, ClusterServiceLifetime.Cluster);