/**
* Increment the value of the nextIndex
- * @return
+ *
+ * @return the new value of nextIndex
*/
long incrNextIndex();
/**
* Decrement the value of the nextIndex
- * @return
+ *
+ * @return the new value of nextIndex
*/
long decrNextIndex();
/**
+ * Sets the index of the next log entry for this follower.
*
* @param nextIndex
+ * @return true if the new index differed from the current index and the current index was updated, false
+ * otherwise.
*/
- void setNextIndex(long nextIndex);
+ boolean setNextIndex(long nextIndex);
/**
* Increment the value of the matchIndex
- * @return
+ *
+ * @return the new value of matchIndex
*/
long incrMatchIndex();
- void setMatchIndex(long matchIndex);
+ /**
+ * Sets the index of the highest log entry for this follower.
+ *
+ * @param matchIndex
+ * @return true if the new index differed from the current index and the current index was updated, false
+ * otherwise.
+ */
+ boolean setMatchIndex(long matchIndex);
/**
- * The identifier of the follower
- * This could simply be the url of the remote actor
+ *
+ * @return the identifier of the follower. This could simply be the url of the remote actor.
*/
String getId();
/**
- * for each server, index of the next log entry
- * to send to that server (initialized to leader
- * last log index + 1)
+ * @return index of the next log entry to send to that server (initialized to leader last log index + 1)
*/
long getNextIndex();
/**
- * for each server, index of highest log entry
- * known to be replicated on server
- * (initialized to 0, increases monotonically)
+ * @return index of highest log entry known to be replicated on server (initialized to 0, increases monotonically)
*/
long getMatchIndex();
/**
* Checks if the follower is active by comparing the last updated with the duration
- * @return boolean
+ *
+ * @return true if follower is active, false otherwise
*/
boolean isFollowerActive();
/**
* This will return the active time of follower, since it was last reset
- * @return time in milliseconds
+ *
+ * @return time in milliseconds since the last activity from the follower
*/
long timeSinceLastActivity();
+ /**
+ * This method checks if it is ok to replicate
+ *
+ * @return true if it is ok to replicate, false otherwise
+ */
+ boolean okToReplicate();
+
+ /**
+ * @return the payload data version of the follower.
+ */
+ short getPayloadVersion();
+
+ /**
+ * Sets the payload data version of the follower.
+ */
+ void setPayloadVersion(short payloadVersion);
}