packages feed

libraft-0.3.0.0: ChangeLog.md

# Changelog for raft

## 0.3.0.0

- API change: `runRaftNode` now requires the monad it runs in to provide an
  instance of the `MonadRaftAsync` and `MonadRaftChan` in the `Raft.Monad`
  module in lieu of the previously necessary `MonadConc` instance.
- API change: Removed the `MonadConc` constraint on all example monad
  transformers and implemented inherited `MonadRaftChan` and `MonadRaftAsync` 
  instances 
- API change: Removed the `MonadConc` const
- API change: Renamed the old `Raft.Monad` module to `Raft.Transtion` and moved the 
  `RaftT` monad transformer from `Raft.hs` to the `Raft.Monad` module
- Improvement: Rework example monad `RaftExampleT` for simplicity


## 0.2.0.0

- Feature: Client requests are now cached by the current leader such that duplicate
  client requests are not serviced
- Bug Fix: Fix issue in concurrent timer not resetting properly when the timeout
  was set to values under 500ms
- Feature: Client read requests can now query entries by index or range of
  indices
- Improvement: Raft nodes now only write to disk if the state changes during
  handling of events
- Feature: Users can now specify what severity of log messages should be logged
- Bug Fix: Receiving all data from a socket in the RaftSocketT monad
  transformer RaftRecvX typeclass instances inducing a deadlock has been
  rewritten
- Feature: A PostgreSQL backend has been added for storage of log entries

## 0.1.2.0

- Added a heartbeat broadcast by leader on read requests from client to ensure
  that the node is leader before responding to client
- Each log entry is now linked by sha256 hash to the log entry immediately
  preceding it
- Fixed bug where the last log entry was not being read from disk before
  starting the main event loop
- Added quickcheck-state-machine tests for black-box testing of the raft-example
  client program

## 0.1.1.0

- Fixed MonadFail constraints for GHC 8.6

## 0.1.0.0

- Initial release.