use etcd to run a function on only one server in a cluster - with auto failover