Have to say consul is one of the most useful tools for service discovery i've ever used. Only feature I want is better support for multiple environments in the same cluster set.
/prod/...
/stage/...
/dev/...
/feature-xyz/...
It's not elegant, but it made for really simple scripts that let us prepend /${env} to every key to access what we needed.And of course, each service per env had different access tokens so apps in the stage env couldn't read prod keys.