Yes Armon, my concern is that if I run a watcher towards a non-exists service, will Consul be able to find there is no target to run watches against and therefore ignore the pertinent watches? It is more about performance consideration here. And for me, the watchers should be tightly coupled to services... What I am doing in my work now is to generate two json file at a time, one for service definition and checks, and one for a watcher upon the service. So when I remove the service from system, I can remove the watch definition all along to clean up everything.
Watchers to me is the convenient way to run things automatically instead of running cron jobs alike tasks to query APIs periodically.
I did not quiet understand the last sentence you stated here, could you please give an example or a link to an example maybe? From the documentation, I figured either one can add a json file to add a watch in consul or one should run the agent watch command and let that command run in background for long-running.
Cheers,
Jin