IMPROVEMENTS
- Remove
StartAsLeader
configuration option [GH-364]
FEATURES
- Improve FSM apply performance through batching. Implementing the
BatchingFSM
interface enables this new feature [GH-364] - Add ability to obtain Raft configuration before Raft starts with GetConfiguration [GH-369]
IMPROVEMENTS
- Remove lint violations and add a
make
rule for running the linter. - Replace logger with hclog [GH-360]
- Read latest configuration independently from main loop [GH-379]
BUG FIXES
- Export the leader field in LeaderObservation [GH-357]
- Fix snapshot to not attempt to truncate a negative range [GH-358]
- Check for shutdown in inmemPipeline before sending RPCs [GH-276]
FEATURES
- Add support for extensions to be sent on log entries [GH-353]
- Add config option to skip snapshot restore on startup [GH-340]
- Add optional configuration store interface [GH-339]
IMPROVEMENTS
- Break out of group commit early when no logs are present [GH-341]
BUGFIXES
- Fix 64-bit counters on 32-bit platforms [GH-344]
- Don't defer closing source in recover/restore operations since it's in a loop [GH-337]
FEATURES
- Add transfer leadership extension [GH-306]
IMPROVEMENTS
BUGFIXES
- Copy the contents of an InmemSnapshotStore when opening a snapshot [GH-270]
- Fix logging panic when converting parameters to strings [GH-332]
IMPROVEMENTS
- InMemTransport: Add timeout for sending a message [GH-313]
- ensure 'make deps' downloads test dependencies like testify [GH-310]
- Clarifies function of CommitTimeout [GH-309]
- Add additional metrics regarding log dispatching and committal [GH-316]
v1.0.0 takes the changes that were staged in the library-v2-stage-one branch. This version manages server identities using a UUID, so introduces some breaking API changes. It also versions the Raft protocol, and requires some special steps when interoperating with Raft servers running older versions of the library (see the detailed comment in config.go about version compatibility). You can reference hashicorp/consul#2222 for an idea of what was required to port Consul to these new interfaces.
v0.1.0 is the original stable version of the library that was in master and has been maintained with no breaking API changes. This was in use by Consul prior to version 0.7.0.