to provide a little more insight with what i was thinking here, i think the current fallback is pretty rudimentary. for instance, the 'don't remove the last server' hack has served it's usefulness.

i was planning on centralizing more logic here: https://github.com/airbnb/synapse/blob/master/lib/synapse/service_watcher/base.rb#L69

my goal was to add anti-flapping protection, which is to specify a minimum number of servers you want before ANY of them start getting traffic to avoid hammering the first machines that come up. i was thinking of killing any manipulation in the watchers and have them faithfully set whatever they've resolved in `@backends`