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, tutorials and code samples are available at https://railseventstore.org.
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:
- Why I want to introduce mutation testing to the rails_event_store gem
- Mutation testing and continuous integration
Whenever you fix a bug or add a new feature, we require that the coverage doesn't go down.
Name | CI | Version | Downloads |
---|---|---|---|
rails_event_store | |||
rails_event_store_active_record | |||
ruby_event_store-active_record | |||
ruby_event_store | |||
ruby_event_store-browser | |||
ruby_event_store-rspec | |||
aggregate_root |
Name | CI |
---|---|
ruby_event_store-newrelic | |
minitest-ruby_event_store | |
dres_rails | |
dres_client |
This repository is funded and maintained by arkency. Make sure to check out our Rails Architect Masterclass training and long-term support plans available.