refactor: rearrange raft_conf_change logics
A follow-up for #185 (closed) and !440 (merged).
- Provide more descriptive failure domains docstrings
- Introduce failure domains unit testing
- Rearrange raft_conf_change logics:
- Besides
raft_conf
local state introducepromotable
set of instances that are suitable for promotion. - Remove an instance from
promotable
set when it's actually promoted.
- Besides
Edited by Yaroslav Dynnikov