Khepri 0.8.0
At this point, Khepri should be considered Beta and not production ready. The API will likely evolve and future releases will likely introduce breaking changes. The goal of this release is to make it easy for anyone to try it and possibly give feedback.
What's new in Khepri 0.8.0
This release focuses on several important bug fixes and improvements to projections.
Many improvements to projections
Projections are a new mechanism introduced in Khepri 0.6.0 to allow fast queries with a low latency.
Here are five pull requests related to projections:
- Add a
khepri:unregister_projection()
function to unregister projections (#220). - Make "copy"-style projections more efficient and straightforward to use (#204).
- Handle errors from ETS gracefullly (#205).
- Allow to pass options to Horus (#209).
Other changes
- New
khepri:is_empty/1
public function (#210). khepri_cluster:join/3
is now idempotent (#219).- Fix some corner cases in
khepri_cluster:join/3
(#225). - Handle missing default applications when determining the list of modules to skip when extracting a transaction function (#215).
- Handle Ra server shutdown gracefully (#211, #223).
- Improve logging for member queries (#208, #216).
- Fix documentation of
put()
(#206). - Ra was bumped from 2.5.1 to 2.6.3 (#224).
- Horus was bumped from 0.2.3 to 0.2.4 (#224).
Download
Khepri 0.8.0 is available from Hex.pm: https://hex.pm/packages/khepri/0.8.0
Upgrade
Using Rebar:
-
Update your
rebar.config
:%% In rebar.config {deps, [{khepri, "0.8.0"}]}.
-
Run
rebar3 upgrade khepri
.
Using Erlang.mk:
-
Update your
Makefile
:%% In your Makefile dep_khepri = hex 0.8.0
-
Remove the
deps/khepri
directory. The new version will be fetched the next time you build your project.