These are chat archives for atomix/atomix
@kbujanecki The Raft implementation itself supports reconfiguration of cluster membership, but the Raft partition groups do not currently support it for a variety of reasons. Any rudimentary implementation using Raft cluster reconfiguration would be unstable. The problem is, reconfiguring Raft partitions really needs to be done transactionally to avoid partial configuration changes in the event of a failure, so what we need is something like the transaction coordinator where two phase commit is used for cross-partition commits and a peer takes over for the coordinator in the event of a node crashing during a transaction. That’s not hard to implement, but not trivial either.
Another question is what the configuration API would look like. Allowing Raft partition group membership to be changed in configuration files would create cases where a configuration file is out of sync with the actual partition group configuration. We probably want to store configurations internally and provide an API for reconfiguring the cluster at runtime to preserve and expose an internal representation of the active configuration. We could do that using the management partition group.