@Override public ServiceProvider<Payload> load(String serviceName) throws Exception { InstanceFilter<Payload> filter = new InstanceFilter<Payload>() { @Override public boolean apply(ServiceInstance<Payload> instance) { Payload payload = instance.getPayload(); if ( payload.getForcedState() == ForcedState.CLEARED ) { return (payload.getHealthyState() == HealthyState.HEALTHY); } return (payload.getForcedState() == ForcedState.REGISTER); } }; ServiceProvider<Payload> provider = discovery .serviceProviderBuilder() .serviceName(serviceName) .additionalFilter(filter) .build(); provider.start(); return provider; }