We should allow the Resolver interface to emit an empty set of backends when there are none available. The current Resolver contract doesn't allow this (by not allowing a transition back to "failed" from "running"). We should make Pool and Set able to deal with a Resolver that obeys this relaxed contract, and provide an option on the DNS resolver to strictly follow TTLs (rather than holding onto the last backend when DNS is empty).
We should allow the Resolver interface to emit an empty set of backends when there are none available. The current Resolver contract doesn't allow this (by not allowing a transition back to "failed" from "running"). We should make Pool and Set able to deal with a Resolver that obeys this relaxed contract, and provide an option on the DNS resolver to strictly follow TTLs (rather than holding onto the last backend when DNS is empty).