<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Wow - this looks like a fantastic piece of work. I really appreciate that you took the time to include a diagram in the project readme too - that’s incredibly helpful to people looking into building on your work.<div class=""><br class=""></div><div class="">Cheers,</div><div class="">-Geoff</div><div class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Jun 23, 2015, at 03:04, Alex Gunin <<a href="mailto:guninalexander@gmail.com" class="">guninalexander@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html charset=us-ascii" class=""><div 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></div></div></blockquote></div></div></body></html>