I’m designing a decentralized system where nodes can “sign up” dynamically to serve particular services. I was picturing using the namerd API to handle this, so if a node is volunteering to serve service
xyz then it would add itself to the corresponding dtab entry.
The namerd API doesn’t seem to be suited to this kind of design. Doing a
POST to a particular dtab replaces the existing entry, so there will always be race conditions with multiple updates.
I wonder if it would be considered acceptable to update the underlying etcd database directly? Does namerd support this? Etcd already has strong semantics for concurrent updates. Does namerd have a published, stable representation for its etcd entries, and listen for updates?
Failing that, is there any hope that a decentralized system could submit uncoordinated dtab updates? Wrapping namerd in another service is possible, of course, but it’s not all that appealing due to its complexity. Is there any alternative?