For this new release, we mainly focused on bug fixes. Several were in the projections code, the mechanism used to improve the latency of queries. A few more in the code to add a member to a cluster, because of an incorrect use of the Ra library.
Two users, including @zabrane above, reported a problem when trying to use Khepri in an Erlang release. The problem was in Horus, a dependency of Khepri. It was fixed in Horus 0.2.4 and Khepri 0.8.0 depends on it. It turns out that the erts
application is not automatically added to an Erlang release. It was a surprise to me, given that modules such as erlang
are kind of useful But I understand now, an application always depends on
kernel
and stdlib
but they still must be added to the app(4) file. It makes sense that erts
should be treated the same if an application explicitly uses it.
The only additions to the API in this release are:
- a function to check if a Khepri store is empty or not:
case khepri:is_empty(StoreId) of true -> %% ...
- a function to unregister a previously registered projection:
khepri:unregister_projection(StoreId, ProjectionName)
That’s it for the highlights of Khepri 0.8.0! The release notes will give you more details about other changes as well as how to upgrade from a previous version of Khepri. Feedback is welcome as always