Thanks!
I was using Consul because we had that already deployed. After quick research looks like etcd client doesn't provide nice abstraction for creating dist locks. I found [1] and [2] though. Definitely it's doable with etcd.
[1] https://github.com/datawisesystems/etcd-lock
[2] https://github.com/ORBAT/node-etcd-lock