package io.scalecube.services; import io.scalecube.services.ServicesConfig.Builder.ServiceConfig; import java.util.Collection; import java.util.List; import java.util.Optional; /** * Service registry interface provides API to register/unregister services in the system and make services lookup by * service result. */ public interface ServiceRegistry { void registerService(ServiceConfig serviceObject); void unregisterService(Object serviceObject); List<ServiceInstance> serviceLookup(String serviceName); Optional<ServiceInstance> getLocalInstance(String serviceName, String method); Collection<ServiceInstance> services(); Optional<ServiceDefinition> getServiceDefinition(String serviceName); ServiceDefinition registerInterface(Class<?> serviceInterface); }