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.
-
Interactor
Interactor provides a common interface for performing complex user interactions. -
Trailblazer
The advanced business logic framework for Ruby. -
wisper
A micro library providing Ruby objects with Publish-Subscribe capabilities -
Responders
A set of Rails responders to dry up your application -
ActiveInteraction
:briefcase: Manage application specific business logic. -
Decent Exposure
A helper for creating declarative interfaces in controllers -
Mutations
Compose your business logic into commands that sanitize and validate input. -
dry-types
Flexible type system for Ruby with coercions and constraints -
Light Service
Series of Actions with an emphasis on simplicity. -
Amoeba
A ruby gem to allow the copying of ActiveRecord objects and their associated children, configurable with a DSL on the model -
SimpleCommand
A simple, standardized way to build and use Service Objects (aka Commands) in Ruby -
Inline SVG
Embed SVG documents in your Rails views and style them with CSS -
Waterfall
A slice of functional programming to chain ruby services and blocks, thus providing a new approach to flow control. Make them flow! -
u-service
Represent use cases in a simple and powerful way while writing modular, expressive and sequentially logical code. -
Surrounded
Create encapsulated systems of objects and focus on their interactions -
PageletRails
Improve perceived performance of your rails application with minimum effort -
Smart Init - Simple service objects in Ruby
A simple gem for eliminating Ruby initializers boilerplate code, and providing unified service objects API -
Rocketman
๐ Rocketman help build event-based/pub-sub code in Ruby -
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 -
skinny_controllers
A pattern for allowing for easier testing of large projects' business logic -
Strategic
Strategic - Painless Strategy Pattern in Ruby and Rails -
Invokable
Objects are functions! Treat any Object or Class as a Proc (like Enumerable but for Procs). -
Lionshare
A Ruby interface to the Lionshare API (cryptocurrency prices) -
EasilyTypable
Ruby module that facilitates English-like type checking in an inheritance hierarchy via "type_name?" methods -
grpc_serializer
A simple library to encode nested hash to grpc object and vice versa -
simple_active_link_to
Simple rails view helper to manage "active" state of a link -
dry-rb
dry-rb is a collection of next-generation Ruby libraries, each intended to encapsulate a common task.
PopRuby: Clothing and Accessories for Ruby Developers
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
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
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.
RailsEventStore gems
Name | CI | Version | Downloads |
---|---|---|---|
rails_event_store | |||
rails_event_store_active_record | |||
ruby_event_store | |||
ruby_event_store-browser | |||
ruby_event_store-rspec | |||
aggregate_root |
Contributed gems
Unreleased contributed gems
Name | CI |
---|---|
ruby_event_store-newrelic | |
minitest-ruby_event_store | |
dres_rails | |
dres_client |
About
This repository is funded and maintained by arkency. Make sure to check out our Rails Architect Masterclass training and long-term support plans available.