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, 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.
Unreleased contributed gems
This repository is funded and maintained by arkency. Make sure to check out our Rails Architect Masterclass training and long-term support plans available.