RaftActorBehavior handleMessage(ActorRef sender, Object message);
/**
- * The state associated with a given behavior
*
- * @return
+ * @return The state associated with a given behavior
*/
RaftState state();
/**
*
- * @return
+ * @return The Id of the Leader if known else null
*/
String getLeaderId();
void setReplicatedToAllIndex(long replicatedToAllIndex);
/**
- * getting the index of the log entry which is replicated to all nodes
- * @return
+ * @return the index of the log entry which is replicated to all nodes
*/
long getReplicatedToAllIndex();
+
+ /**
+ * @return the leader's payload data version.
+ */
+ short getLeaderPayloadVersion();
+
+ /**
+ * switchBehavior makes sure that the current behavior is shutdown before it switches to the new
+ * behavior
+ *
+ * @param behavior The new behavior to switch to
+ * @return The new behavior
+ */
+ RaftActorBehavior switchBehavior(RaftActorBehavior behavior);
}