Re: [ANN] Khepri 0.2.1 - A tree-like replicated on-disk database library
Frank Muller <[email protected]> Fri, 18 Feb 2022 11:21:41 +0100
| Newsgroups | gmane.comp.lang.erlang.general |
|---|---|
| Message-ID | <CAFA6GnC2B1=_RYdixOnD7vJvw3h426kUQUFtyxMhELPH-JqK9A@mail.gmail.com> |
Hi Jean-Sébastien, Very well done!!! Anything that can save me (+my team) from Mnesia is always welcome. Do you provide (throughput / latency) benchmarks? /F <[email protected]> : > Hi! > > On behalf of the RabbitMQ team, I'm pleased to announce Khepri 0.2.1! It > is available on: > * GitHub (https://github.com/rabbitmq/khepri/releases/tag/v0.2.1) > * Hex.pm (https://hex.pm/packages/khepri) > > Khepri is a tree-like replicated on-disk database library for Erlang and > Elixir. This is a library we plan to use inside RabbitMQ as a > replacement for Mnesia. Indeed, we want to leverage Ra[1], our > implementation of the Raft consensus algorithm, to have a uniform > behavior, especially w.r.t. network partitions, across all types of data > managed by RabbitMQ. > > The release notes of 0.2.0 [2] describe the highlights of Khepri 0.2.x > in detail, but I would like to quickly talk about the biggest one: > triggers and stored procedures! > > Triggers are a mechanism to execute an anonymous function automatically > following some events. > > Currently supported events are changes made to the tree: nodes were > created, updated or deleted. In the future, it could support Erlang > process monitoring, node monitoring, and so on. Triggers are registered > using an event filter which, as its name suggests, takes care of > filtering the event which should execute the associated function. > > The anonymous function behind a trigger is stored in the database as the > payload of tree node. This function is called a stored procedure. Before > it is stored, the function is extracted like transaction functions are. > However, there are no restrictions on what it can do, unlike transaction > functions. > > If you have any comments and feedback, or if you started to play with > the library in one of your projects, please share! I’m looking forward > to listen to your experience! > > Thank you very much! > > [1] https://github.com/rabbitmq/ra > [2] https://github.com/rabbitmq/khepri/releases/tag/v0.2.0 > > -- > Jean-Sébastien Pédron >