Build Status Gem Version Code Climate Test Coverage Join the chat at


A Ruby implementation of an EventStore. Default storage is events repository based on Active Record (provided by separate gem: rails_event_store_active_record).


All documentation and sample codes are available at If you'd like to contribute by writing or maintaining docs, they're stored in the gh-pages branch in this repository.


Check the contribution guide on

We're aiming for 100% mutation coverage in this project. Read the reasoning:

Why I want to introduce mutation testing to the rails_event_store gem

Mutation testing and continuous integration

In practice, it means that we run make mutate as part of the CI process. As long as we don't have 100%, there's a hardcoded value we expect from the mutation coverage.

Whenever you fix a bug or add a new feature, we require that the coverage doesn't go down.

However, even if it goes up, you need to go the Makefile and apply the new expected coverage. We call this technique "raising the coverage bar". The goal here is to raise the bar so that the better coverage is maintained for later changes. The new value should be the Kills/Mutations number in your last make mutate output.



Rails Event Store is funded and maintained by Arkency. Check out our other open-source projects.

You can also hire us or read our blog.