Skip to content

Khepri 0.8.0

Compare
Choose a tag to compare
@dumbbell dumbbell released this 30 Aug 14:17
· 77 commits to main since this release
v0.8.0
952a529

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:

  1. Update your rebar.config:

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

Using Erlang.mk:

  1. Update your Makefile:

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

Documentation

The documentation for Khepri 0.8.0 is available on Hex.pm.