Let’s say that I launch 3 identical servers, each of which is running a zero node and an alpha node for HA’s sake. Now, in the Dgraph docs under the “HA Cluster setup using Docker Swarm” section, I see that all of the alpha nodes are connecting to the same zero node since they are passed the following flag:
--zero=zero_1:5080
My question is: what would happen in the case that server running the zero_1 node becomes unavailable? Would the remaining alphas be able to find the other remaining zeros?
Also, would the remaining zeros be able to peer with each other? Because I also see that they are all passed this same flag:
--peer zero_1:5080
If they are able to do so, will there be interruption to any transactions that are coming in to the remaining alpha nodes?
Thanks for any help and clarification, I really appreciate it.
I don’t have deeply technical answers to this, but all I have you can understand by reading the Design Concepts documentation Get started with Dgraph
Overall Dgraph proposes to be, Distributed, Transactional, Rebalanced and Highly Available.
When any instance goes down, it is replaced by another in the line*. Be it Zero or Alpha. All Alphas when connecting to the main Zero, know of the existence of the other Zeros and how to find them.
They share information among themselves. To ensure availability. Who is aware of the Zeros are the Alphas. They know where they are and who is part of Quorum.
Dgraph is distributed. That is, all transactions are sent to the final destination in an internally distributed manner. Nothing will need to be interrupted AFAIK.
Thank you for the clarification and helping me better understand everything. I’ll be doing some testing on my cluster before going into production and will see if there are any issues. But this makes me feel more reassured about using Dgraph and I hope that it all goes well