Distributed lock implementation using etcd