Remove log factories.
Refactor log implementation to improve performance, snapshot handling, and extensibility.
Fix issues with loading persistent log.
Use byte arrays for snapshots and make snapshotting optional.
Add helpers for reading/writing protocol requests/responses.
Fix bug in memory log.
Fix bug in persistent log.
Add persistent log compaction tests.
Fix bugs in memory log compaction.
Update local protocol to support registry injection.
Prevent MemoryLog from throwing exceptions when TreeMap is empty.
Use matchIndex when pinging cluster members.
Fix NPE when submitting commands to leader node.
Rewind in-memory byte buffers during reads.
Ensure ping messages are not appended to logs.
Ignore empty indices when reading multiple entries from the memory log.
Fix race condition in which the same entry can be applied to the state machine multiple times.
Ensure ping futures are always completed.
Clean up commenting in leader implementation.
Remove Jackson dependency.