<div dir="ltr">







<p class="">This release comes with ndn-raft [1]. Raft is a protocol by which a cluster of nodes can maintain a replicated state machine. The state machine is kept in sync through the use of a replicated log. NDN enables Raft leader to share its log content efficiently with its followers. ndn-raft is a reference implementation for go-ndn REST-like service, and an real-world example to show how to easily prepare data packet before interest [2]. For a more detailed explanation on the failover process and election terms, please see the full paper describing the protocol: In Search of an Understandable Consensus Algorithm [3].</p><p class=""><br></p><p class="">Major:</p><ul class="">
<li class="">add mux.Publisher to publish data packets easily to content store with middleware. Now mux.Middleware is used by Fetcher, Router and Publisher.</li>
<li class="">reduce go GC pressure for longest-prefix match lookup</li>
<li class="">reduce number of runnable goroutines for event like PIT timeout</li>
</ul><p class=""><br></p><p class="">Backward-incompatible change:</p><ul class="">
<li class="">There is a significant design change for mux.Notify and mux.Listener after these APIs are used in production (see ndn-raft for the most recent example)</li>
</ul><p class=""><br></p><p class=""><br></p><p class=""><span class="">[1]: <a href="https://github.com/go-ndn/raft"><span class="">https://github.com/go-ndn/raft</span></a></span></p><p class=""><span class="">[2]: <a href="https://github.com/go-ndn/example/blob/master/before-interest.md"><span class="">https://github.com/go-ndn/example/blob/master/before-interest.md</span></a></span></p><p class="">


















</p><p class=""><span class="">[3]: <a href="https://ramcloud.stanford.edu/raft.pdf"><span class="">https://ramcloud.stanford.edu/raft.pdf</span></a></span></p></div>