I believe that is is, if changes are made to etcd after the initial Get() to fetch the domain list, but before Watch() is called with the index from that initial interaction, those changes can be applied twice: Once during the subsequent Get() calls to fetch the data for each domain, then as a notification through Watch().

The two solutions I could think of were using a recursive call to fetch the whole structure at once, or use the index given to us by the root Get() for all subsequent data fetches as well.