In some cases, it might be useful to store contact points as unresolved (hosts with dynamic addresses like with k8s). We should have a config method on the builder to force the driver to resolve the contact point everytime it is used in the attempt to open/re-open the control connection.
Similar to this, we should use this mechanism when total connectivity is lost without considering what value is set in this new config option.
Also, we can't rely on Dns.GetHostEntryAsync since there is no way to avoid caching with this API. We should consider (using this library)https://github.com/MichaCo/DnsClient.NET
To avoid an additional dependency we can do some testing with this setting (not available in net standard < 2)
EDIT: we should do some testing first to see if DNS.GetHostEntry works fine as is, i.e., only caches for a duration specified by the TTL. DNS.GetHostEntry just invokes the OS DNS subsystem so it will be necessary to test this in both Windows and Linux. In Linux it might depend on what software is installed (see https://stackoverflow.com/questions/11020027/dns-caching-in-linux )
Note: See and for further context.