Hi all, Lately I’ve been thinking about how to ease the onramp for users to get a clustered CouchDB setup running. I think the Kubernetes work shows a lot of promise. One of the aspects of that work is the service discovery element; each node in a cluster should be able to automatically find its peers and connect to them. Kubernetes accomplishes this using SRV records; a DNS lookup for a given named service will return the FQDNs of all the live members of the “Pet Set”.
The SRV approach is enough of a standard[1] that I wonder if we ought to code for it directly in mem3. It’d eliminate the need for a “sidecar” container in Kubernetes deployments and I can imagine that it will prove more generally useful. The idea would be for mem3 to check if the CouchDB node is running in distributed node, and if it is, fire off a DNS lookup on the domain name, then attempt to connect with any other targets that are included in the record set in the DNS response. What do you think? If no one objects I’ll file a JIRA and see what we come up with. Adam [1]: https://tools.ietf.org/html/rfc2782