0.68
A long-lived project that still receives updates
Ruby implementation of an event store. Ships with in-memory event repository, generic instrumentation and dispatches events synchronously.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Runtime

~> 1.0, >= 1.1.6
 Project Readme

Rails Event Store

Rails Event Store (RES) is a library for publishing, consuming, storing and retrieving events. It's your best companion for going with an event-driven architecture for your Rails application.

You can use it:

  • as your Publish-Subscribe bus
  • to decouple core business logic from external concerns in Hexagonal style architectures
  • as an alternative to ActiveRecord callbacks and Observers
  • as a communication layer between loosely coupled components
  • to react to published events synchronously or asynchronously
  • to extract side-effects (notifications, metrics etc) from your controllers and services into event handlers
  • to build an audit-log
  • to create read-models
  • to implement event-sourcing

Documentation

Documentation, tutorials and code samples are available at https://railseventstore.org.

Code status

This single repository hosts several gems and website with documentation — see the contribution guide.

We're aiming for 100% mutation coverage in this project. This is why:

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

RailsEventStore gems

Name CI Version Downloads
rails_event_store GitHub Workflow Status Gem Gem
rails_event_store_active_record GitHub Workflow Status Gem Gem
ruby_event_store-active_record GitHub Workflow Status Gem Gem
ruby_event_store GitHub Workflow Status Gem Gem
ruby_event_store-browser GitHub Workflow Status Gem Gem
ruby_event_store-rspec GitHub Workflow Status Gem Gem
aggregate_root GitHub Workflow Status Gem Gem

Contributed gems

Name CI Version Downloads
ruby_event_store-outbox GitHub Workflow Status Gem Gem
ruby_event_store-protobuf GitHub Workflow Status Gem Gem
ruby_event_store-profiler GitHub Workflow Status Gem Gem
ruby_event_store-flipper GitHub Workflow Status Gem Gem
ruby_event_store-transformations GitHub Workflow Status Gem Gem
ruby_event_store-rom GitHub Workflow Status Gem Gem
ruby_event_store-sidekiq_scheduler GitHub Workflow Status Gem Gem

Unreleased contributed gems

Name CI
ruby_event_store-newrelic GitHub Workflow Status
minitest-ruby_event_store GitHub Workflow Status
dres_rails GitHub Workflow Status
dres_client GitHub Workflow Status

About

Arkency

This repository is funded and maintained by arkency. Make sure to check out our Rails Architect Masterclass training and long-term support plans available.