I am trying to build a distributed ID generator like Twitter Snowflake on Google Compute Engine.
This requires generator-specific Machine ID (Datacenter ID + Worker ID). In order to manage it, Snowflake used Zookeeper. I chose etcd as an alternative to this Zookeeper.
I will access etcd from Go app (Go implementation of Snowflake), determine workerId and save it. Is this different? How can I dynamically determine workerId using etcd?
How can I add new members to etcd's existing cluster using autoscaling?
The image of the instance uses coreos.