<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><a href="https://github.com/dreyk/zraft_lib" class="">https://github.com/dreyk/zraft_lib</a><div class=""><br class=""></div><div class="">Full Implementation Raft consensus protocol on Erlang</div><div class=""><br class=""></div><div class=""><p style="box-sizing: border-box; margin-top: 0px; margin-bottom: 16px; color: rgb(51, 51, 51); line-height: 25px; background-color: rgb(255, 255, 255);" class="">Supported features:</p><ul style="box-sizing: border-box; padding: 0px 0px 0px 2em; margin-top: 0px; margin-bottom: 16px; color: rgb(51, 51, 51); line-height: 25px; background-color: rgb(255, 255, 255);" class=""><li style="box-sizing: border-box;" class="">Runtime membership reconfiguration.</li><li style="box-sizing: border-box;" class="">Log truncation via snapshotting.</li><li style="box-sizing: border-box;" class="">Peer asynchronous RPC.</li><li style="box-sizing: border-box;" class="">Pluggable state machine.</li><li style="box-sizing: border-box;" class="">Optimistic log replication.</li><li style="box-sizing: border-box;" class="">Snapshot transfer via kernel sendfile command.</li><li style="box-sizing: border-box;" class="">Client sessions.</li><li style="box-sizing: border-box;" class="">Temporary data (like ephemeral nodes)</li><li style="box-sizing: border-box;" class="">Data change triggers.</li></ul><div class=""><br class=""></div></div></body></html>