<div dir="ltr">Hello Erlangers,<div><br></div><div>I'm very happy to announce that we have released the first version of NkBASE, a distributed, highly available key-value database designed to be integrated into riak_core based Erlang applications. NkBASE is one of the core pieces of the upcoming Nekso's Software Defined Data Center Platform, NetComposer.</div><div><br></div><div>NkBASE has some interesting features:</div><div><div><ul><li>Highly available, allowing read and write operations even in case of node failures.<br></li><li>Operation friendly. Nodes can be added and removed on the fly.<br></li><li>Scalable from three to hundreds of nodes.<br></li><li>Disk (leveldb) and memory (ets) backends.<br></li><li>Three simultaneous operation modes:<br></li><ul><li>Eventually consistent mode using Dotted Version Vectors.</li><li>Strong consistent mode based on using riak_ensemble's multi-paxos.</li><li>Easy to use, self-convergent CRDTs called dmaps.</li></ul><li>Multiple, auto-generated secondary indices, usable in the three modes.<br></li><li>Can use any Erlang term as domain, class, key, value, index or index value.</li><li>Simple, easy to use, utf8 and latin-1 aware query language for secondary indices.<br></li><li>Full support for auto-expiration of objects, with configurable resolution.<br></li></ul><div>NkBASE has a clean code base, and can be used as a starting point to learn how to build a distributed Erlang system on top of riak_core, or to test new backends or replication mechanisms. </div><div><br></div><div>NkBASE heavily relies on the impressive riak_core, riak_dt and riak_ensemble from Basho.</div></div></div><div><br></div><div>Try it at <a href="https://github.com/Nekso/nkbase" target="_blank">https://github.com/Nekso/nkbase</a>. Comments are very welcomed!</div><div><br></div><div>Carlos Gonzalez</div><div>@carlosjgf</div><div><a href="https://www.linkedin.com/in/carlosjgf" target="_blank">https://www.linkedin.com/in/carlosjgf</a><br></div><div><br></div><div><br></div><div><br></div></div>