Repository navigation
Khepri 0.17.8
Khepri is still under active development. It is safe to use in production. However, the API will likely evolve and future releases will likely introduce breaking changes.
What's new in Khepri 0.17.8
Optimised update and restore of projections
Khepri is faster and consumes less memory when it needs to update or restore projections. Testing shows a 25% drop in memory consumption while updating or restoring projections, while taking 50% less time to update them.
See #415.
Horus 0.5.0
Horus was updated to version 0.5.0. This release makes it possible to run a cluster of Khepri members using a mix of Erlang versions. For example, some members on Erlang 27 and some members on Erlang 28.
Before this change, it was impossible to do so because a transaction, a projection or a stored procedure created by a member running Erlang 28 would fail to run on the Erlang-27-based member. That member would then be unable to apply anything and follow the cluster. This could even lead to a loss of quorum until all members were running Erlang 28.
See #418.
Other changes
- Replace
catchby try/catch blocks (#385). - Pass
machine_versionwhen applying init-time commands (#388). - Fix an issue with the
prop_state_machineproperty-based testsuite (#389). - Fix a bug with the handling of the
#if_not{}condition (#394). - Fix a bug when a trigger is evaluated against just-deleted node (#405, #398).
- Fix a bug in the generic tree walk function when a new node is created (#412).
- Fix an invalid return value if
khepri_condition:is_valid/1(#413). - Update Ra from 2.16.12 to 2.16.13 (#417).
Download
Khepri is available from Hex.pm: https://hex.pm/packages/khepri/0.17.8
Upgrade
Using Rebar:
-
Update your
rebar.config:%% In rebar.config {deps, [{khepri, "0.17.8"}]}.
-
Run
rebar3 upgrade khepri.
Using Erlang.mk:
-
Update your
Makefile:%% In your Makefile dep_khepri = hex 0.17.8 -
Remove the
deps/khepridirectory. The new version will be fetched the next time you build your project.