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.
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.
This single repository hosts several gems and website with documentation. Check the contribution guide.
Learn more about DDD & Event Sourcing
Read about Domain Driven Rails
You may also consider buying the Domain-Driven Rails book.