Description
An implementation of an Event Store for Ruby and Rails. Comes with Active Record adapter.
This single repository hosts several gems.
Rails Event Store alternatives and similar gems
Based on the "Abstraction" category.
Alternatively, view Rails Event Store alternatives based on common mentions on social networks and blogs.
-
Trailblazer
Trailblazer is a thin layer on top of Rails. It gently enforces encapsulation, an intuitive code structure and gives you an object-oriented architecture. -
Interactor
Interactor provides a common interface for performing complex interactions in a single request. -
Apotomo
Based on Cells, Apotomo gives you widgets and encapsulation, bubbling events, AJAX page updates, rock-solid testing and more. -
Amoeba
A ruby gem to allow the copying of ActiveRecord objects and their associated children, configurable with a DSL on the model -
Waterfall
A slice of functional programming to chain ruby services and blocks, thus providing a new approach to flow control. Make them flow! -
SimpleCommand
A simple, standardized way to build and use Service Objects (aka Commands) in Ruby -
Surrounded
Encapsulated related objects in a single system to add behavior during runtime. Extensible implementation of DCI. -
Smart Init - Simple service objects in Ruby
A simple gem for eliminating Ruby initializers boilerplate code, and providing unified service objects API -
SuperModule
SuperModule allows defining class methods and method invocations the same way a super class does without using def included(base). This also succeeds ActiveSupport::Concern by offering lighter syntax -
Invokable
Objects are functions! Treat any Object or Class as a Proc (like Enumerable but for Procs). -
EasilyTypable
Ruby module that facilitates English-like type checking in an inheritance hierarchy via "type_name?" methods -
dry-rb
dry-rb is a collection of next-generation Ruby libraries, each intended to encapsulate a common task.
Get performance insights in less than 4 minutes
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest. Visit our partner's website for more details.
Do you think we are missing an alternative of Rails Event Store or a related 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
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.
Contributing
This single repository hosts several gems and website with documentation. Check the contribution guide.
About
This repository is funded and maintained by Arkency. Check out our other open-source projects and what else we have at RES.
Consider hiring us and make sure to check out our blog.
Learn more about DDD & Event Sourcing
Check our Rails + Domain Driven Design Workshop. Why You should attend? Robert has explained this in a blogpost.
Read about Domain Driven Rails
You may also consider buying the Domain-Driven Rails book.