This includes both major and minor refinements of the raft package. The most important of these are the addition of the Protocol interface and that NewServer now accepts only a Protocol instance. The purpose of this change is to make the library more flexible - it allows the user to specify what Log, Storage, and SnapshotStorage implementation they wish to use while still using Server. Further, since Server accepts a Protocol instance, a user may use their own raft implementation as long as it satisfies the interface.
This includes both major and minor refinements of the
raft
package. The most important of these are the addition of theProtocol
interface and thatNewServer
now accepts only aProtocol
instance. The purpose of this change is to make the library more flexible - it allows the user to specify whatLog
,Storage
, andSnapshotStorage
implementation they wish to use while still usingServer
. Further, sinceServer
accepts aProtocol
instance, a user may use their own raft implementation as long as it satisfies the interface.