Skip to content

Khepri 0.17.8

Choose a tag to compare

@dumbbell dumbbell released this 24 Aug 09:27
· 271 commits to main since this release
v0.17.8
671f848

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 catch by try/catch blocks (#385).
  • Pass machine_version when applying init-time commands (#388).
  • Fix an issue with the prop_state_machine property-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:

  1. Update your rebar.config:

    %% In rebar.config
    {deps, [{khepri, "0.17.8"}]}.
  2. Run rebar3 upgrade khepri.

Using Erlang.mk:

  1. Update your Makefile:

    %% In your Makefile
    dep_khepri = hex 0.17.8
  2. Remove the deps/khepri directory. The new version will be fetched the next time you build your project.

Documentation

The documentation for Khepri is available on Hex.pm.