When the Leader has sent an append, for an unexpected number, the Follower replies with this
When the Leader has sent an append, for an unexpected number, the Follower replies with this
Raft extension: Cluster Membership Changes / Joint Consensus
Raft extension: Cluster Membership Changes / Joint Consensus
There can take a while to propagate, and will only be applied when the config is passed on to all nodes, and the Leader (current, or new) is contained in the new cluster configuration - this may cause a re-election, if we're about to remove the current leader from the cluster.
§6 - Cluster Membership Changes
Wrap messages you want to send to the underlying replicated state machine
Wrap messages you want to send to the underlying replicated state machine
Raft extension: Snapshots Used by the Leader to install a snapshot onto an "catching up from very behind" Follower.
Raft extension: Snapshots Used by the Leader to install a snapshot onto an "catching up from very behind" Follower. It's the Followers responsibility to load the snapshot data and apply it to it's state machine, by using akka-persistence provided mechanisms.
§7 - Log Compaction
Used by Members to notify com.teambytes.inflatable.raft.RaftClientActor actors that they're sending their requests to a non-leader, and
that they should update their internal leader
ActorRef to the given one.
Used by Members to notify com.teambytes.inflatable.raft.RaftClientActor actors that they're sending their requests to a non-leader, and
that they should update their internal leader
ActorRef to the given one.
Upon receive of such message, all further communication should be done with the given actorRef.
§8 - Client Interaction
Message sent by a com.teambytes.inflatable.raft.Candidate in order to win an election (and become com.teambytes.inflatable.raft.Leader).
Message sent by a com.teambytes.inflatable.raft.Candidate in order to win an election (and become com.teambytes.inflatable.raft.Leader).
§5.2 Leader Election and §5.4.1 - Election Restriction
A Candidate tries to become a Leader, by issuing com.teambytes.inflatable.raft.protocol.RaftProtocol.RequestVote
A Candidate tries to become a Leader, by issuing com.teambytes.inflatable.raft.protocol.RaftProtocol.RequestVote
A Follower can take writes from a Leader; If doesn't get any heartbeat, may decide to become a Candidate
A Follower can take writes from a Leader; If doesn't get any heartbeat, may decide to become a Candidate
In this phase the member awaits to get it's com.teambytes.inflatable.raft.ClusterConfiguration
In this phase the member awaits to get it's com.teambytes.inflatable.raft.ClusterConfiguration
Internal msg sent to actor which should start a snapshotting process
Internal msg sent to actor which should start a snapshotting process
The Leader is responsible for taking writes, and commiting entries, as well as keeping the heartbeat to all members
The Leader is responsible for taking writes, and commiting entries, as well as keeping the heartbeat to all members
Message issued by freshly restarted actor after has crashed Leader reacts with sending com.teambytes.inflatable.raft.protocol.RaftProtocol.ChangeConfiguration
Message issued by freshly restarted actor after has crashed Leader reacts with sending com.teambytes.inflatable.raft.protocol.RaftProtocol.ChangeConfiguration
§6 - Cluster Membership Changes