Rails Event Store

September 29, 2023 ยท View on GitHub

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

NameCIVersionDownloads
rails_event_storeGitHub Workflow StatusGemGem
rails_event_store_active_recordGitHub Workflow StatusGemGem
ruby_event_store-active_recordGitHub Workflow StatusGemGem
ruby_event_storeGitHub Workflow StatusGemGem
ruby_event_store-browserGitHub Workflow StatusGemGem
ruby_event_store-rspecGitHub Workflow StatusGemGem
aggregate_rootGitHub Workflow StatusGemGem

Contributed gems

NameCIVersionDownloads
ruby_event_store-outboxGitHub Workflow StatusGemGem
ruby_event_store-protobufGitHub Workflow StatusGemGem
ruby_event_store-profilerGitHub Workflow StatusGemGem
ruby_event_store-flipperGitHub Workflow StatusGemGem
ruby_event_store-transformationsGitHub Workflow StatusGemGem
ruby_event_store-romGitHub Workflow StatusGemGem
ruby_event_store-sidekiq_schedulerGitHub Workflow StatusGemGem

Unreleased contributed gems

NameCI
ruby_event_store-newrelicGitHub Workflow Status
minitest-ruby_event_storeGitHub Workflow Status
dres_railsGitHub Workflow Status
dres_clientGitHub 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.