A conditional paths publish: ETag on the domain, If-Match on PUT …/paths Feature Request open
From: rastrillo's provision client (roadmap Plan 4, rastrillo provision).
The failure. A hub publishes its whole path map each time it adds a tenant: it lists its tenants, then calls PUT …/domains/{host}/paths. Two hub processes that list and then publish at the same time can drop each other's new prefix, even after one of them has verified it is routed. provision serializes publishes for one hostname within one process, and the daily tick republishes, but nothing prevents the loss across processes.
Asked: an ETag on GET …/domains/{host} and If-Match on PUT …/paths, answering 412 when the map changed since it was read. The console already does a compare-and-swap on the claim write (claims.go:813-816), so the primitive is there.
Nothing waits on this.