+ * @return the interval of recovery snapshot in seconds
+ */
+ int getRecoverySnapshotIntervalSeconds();
+
+ /**
+ * Returns the interval at which a heart beat message should be sent to remote followers.
+ *
+ * @return the interval as a FiniteDuration.
+ */
+ FiniteDuration getHeartBeatInterval();
+
+ /**
+ * Returns the interval after which a new election should be triggered if no leader is available.
+ *
+ * @return the interval as a FiniteDuration.
+ */
+ FiniteDuration getElectionTimeOutInterval();
+
+ /**
+ * Returns the number by which a candidate should divide the election timeout it has calculated. This serves
+ * to speed up retries when elections result in a stalemate.
+ *
+ * @return the interval as a FiniteDuration.
+ */
+ long getCandidateElectionTimeoutDivisor();
+
+ /**
+ * Returns the maximum election time variance. The election is scheduled using both the election timeout
+ * and variance.
+ *
+ * @return the election time variance.
+ */
+ int getElectionTimeVariance();
+
+ /**
+ * Returns the maximum size (in bytes) for the snapshot chunk sent from a Leader.
+ *
+ * @return the maximum size (in bytes).
+ */
+ int getSnapshotChunkSize();
+
+ /**
+ * Returns the maximum number of journal log entries to batch on recovery before applying.
+ *
+ * @return the maximum number of journal log entries.
+ */
+ int getJournalRecoveryLogBatchSize();
+
+ /**
+ * Returns the interval in which the leader needs to check if its isolated.
+ *
+ * @return the interval in ms.
+ */
+ long getIsolatedCheckIntervalInMillis();
+
+ /**
+ * Returns the multiplication factor to be used to determine the shard election timeout. The election timeout
+ * is determined by multiplying the election timeout factor with the heart beat duration.
+ *
+ * @return the election timeout factor.
+ */
+ long getElectionTimeoutFactor();
+
+ /**
+ * Returns the RaftPolicy used to determine certain Raft behaviors.
+ *
+ * @return an instance of RaftPolicy, if set, or an instance of the DefaultRaftPolicy.
+ */
+ @NonNull RaftPolicy getRaftPolicy();
+
+ /**
+ * Returns the PeerAddressResolver.
+ *
+ * @return the PeerAddressResolver instance.
+ */
+ @NonNull PeerAddressResolver getPeerAddressResolver();
+
+ /**
+ * Returns the custom RaftPolicy class name.
+ *
+ * @return the RaftPolicy class name or null if none set.
+ */
+ String getCustomRaftPolicyImplementationClass();
+
+ /**
+ * Returns the directory in which to create temp files.
+ *
+ * @return the directory in which to create temp files.
+ */
+ @NonNull String getTempFileDirectory();
+
+ /**
+ * Returns the threshold in terms of number of bytes when streaming data before it should switch from storing in
+ * memory to buffering to a file.