+ ConfigParams getConfigParams();
+
+ /**
+ *
+ * @return the SnapshotManager for this RaftActor
+ */
+ SnapshotManager getSnapshotManager();
+
+ /**
+ *
+ * @return the DataPersistenceProvider for this RaftActor
+ */
+ DataPersistenceProvider getPersistenceProvider();
+
+ /**
+ *
+ * @return true if the RaftActor has followers else false
+ */
+ boolean hasFollowers();
+
+ /**
+ *
+ * @return the total memory used by the ReplicatedLog
+ */
+ long getTotalMemory();
+
+ /**
+ *
+ * @param retriever a supplier of the total memory metric
+ */
+ @VisibleForTesting
+ void setTotalMemoryRetriever(Supplier<Long> retriever);
+
+ /**
+ *
+ * @return the payload version to be used when replicating data
+ */
+ short getPayloadVersion();
+
+ /**
+ * @return an implementation of the RaftPolicy so that the Raft code can be adapted
+ */
+ RaftPolicy getRaftPolicy();
+
+ /**
+ * @return true if there are any dynamic server configuration changes available,
+ * false if static peer configurations are still in use
+ */
+ boolean isDynamicServerConfigurationInUse();
+
+ /**
+ * Configures the dynamic server configurations are avaialble for the RaftActor
+ */
+ void setDynamicServerConfigurationInUse();
+
+ /**
+ * @return the RaftActor's peer information as a ServerConfigurationPayload if the
+ * dynamic server configurations are available, otherwise returns null
+ */
+ @Nullable ServerConfigurationPayload getPeerServerInfo(boolean includeSelf);
+
+ /**
+ * @return true if this RaftActor is a voting member of the cluster, false otherwise.
+ */
+ boolean isVotingMember();