some questions... thanks
(1) CopycatClient is bootstrapped with a list of Addresses. Is it possible to reset the bootstrap addresses on same copycat client object after it went to suspended/closed state?
(2) When using MEMORY storage level, does MetaStore also use MEMORY buffer and <term, vote> is written only in memory? If yes, then isn't it going to be problematic if a server crashes and restarted very quickly while raft leader election was happening... node would forget that it already voted for the term and might give its vote again to some other candidate in same term. no?
(3) For MEMORY storage level, it seems jvm heap memory is used... in this case I can't see the benefit of jvm managing that memory ... wouldn't it be better to use off-heap memory so that GC is not impacted by copycat's buffers?
(4) Atomix DistributedGroup leader election, it appears if a node becomes group leader and then it's AtomixClient goes to SUSPENDED state (for whatever reason, say this particular node is partitioned off). Then this node will continue to think it is the group leader but rest of the nodes in group get a new leader elected. no?