Class DynamicConsulServiceDiscovery

java.lang.Object
ai.pipestream.dynamic.grpc.client.discovery.DynamicConsulServiceDiscovery
All Implemented Interfaces:
ServiceDiscovery

@ApplicationScoped @Typed(DynamicConsulServiceDiscovery.class) public class DynamicConsulServiceDiscovery extends Object implements ServiceDiscovery
Dynamic Consul-based service discovery that uses Stork's LoadBalancer for intelligent instance selection without requiring pre-configuration. This class is typed as DynamicConsulServiceDiscovery only (not ServiceDiscovery) to avoid ambiguous dependencies. It's made available as ServiceDiscovery through producers. Creates its own ConsulClient from configuration for service discovery.
  • Constructor Details

    • DynamicConsulServiceDiscovery

      public DynamicConsulServiceDiscovery()
      Creates a new DynamicConsulServiceDiscovery. The Consul client is initialized in the @PostConstruct lifecycle.
  • Method Details

    • discoverService

      public io.smallrye.mutiny.Uni<io.smallrye.stork.api.ServiceInstance> discoverService(String serviceName)
      Description copied from interface: ServiceDiscovery
      Discover a single healthy instance of a service.
      Specified by:
      discoverService in interface ServiceDiscovery
      Parameters:
      serviceName - The name of the service to discover
      Returns:
      A Uni containing a selected service instance
    • discoverAllInstances

      public io.smallrye.mutiny.Uni<List<io.smallrye.stork.api.ServiceInstance>> discoverAllInstances(String serviceName)
      Description copied from interface: ServiceDiscovery
      Discover all healthy instances of a service.
      Specified by:
      discoverAllInstances in interface ServiceDiscovery
      Parameters:
      serviceName - The name of the service to discover
      Returns:
      A Uni containing all available service instances