// the find
RailsEventStore/ecommerce
Application with CQRS and Event Sourcing built on Rails and Rails Event Store
A reference implementation of DDD, CQRS, and Event Sourcing on Rails, built around a fake ecommerce domain with nine bounded contexts (ordering, pricing, inventory, payments, etc.). This is an educational codebase first and a working app second — the goal is to show that these patterns are achievable in Ruby, not to ship a SaaS product.
The bounded context separation is genuine, not cosmetic — each domain under `/domains` has its own code and its own CI workflow, so you can see how coupling actually breaks down. Mutation testing with mutant is enforced in CI, which forces the test suite to be meaningful rather than just hitting coverage thresholds. The multi-app architecture (main ecommerce app, pricing catalog app, CRM app) shows concrete examples of domain reuse across separate Rails applications. The Event Store Browser is wired in for development, giving you a live view of the event stream as you interact with the UI.
The UI is a simulation, not a real user flow — customers are selected from a dropdown rather than having accounts, which means the authentication and session complexity that usually breaks DDD implementations in Rails is entirely absent. Zeitwerk is explicitly disabled and requires are manual, which is a legitimate architectural choice but will trip up anyone coming from standard Rails. The hanami_application directory is present but empty, making it unclear whether the Hanami port is planned, abandoned, or in-progress. Setup docs point you to a CI workflow file for the correct Ruby version rather than just stating it, which is a small but telling sign that developer-experience polish wasn't the priority.