I'm no longer RailsEventStore maintainer
I'm no longer RailsEventStore maintainer
TL;DR RES is a strategic OSS product at arkency and I'm no longer with them.
RailsEventStore started around 2014 as an in-house event store developed to solve particular problems at one of the arkency clients. What initially only helped reliably synchronizing financial data with Salesforce, later became a central backbone for integrating company departments, powered cross-cutting workflows and radically simplified operations of the customer support. And we felt it was so good, it would have been a shame not to share it with the world. So, with the client's permission, it was extracted. Just like Rails once was.
RES was designed to work with legacy applications first in mind. Not the idealistic greenfield or hobby projects. It was meant to be introduced to mature projects with minimal changes. To start small, in the middle. On existing infrastructure. At the same time it was a useful educational tool when exposing people to DDD/CQRS/ES trinity. Such glue needed to be strong, versatile and predictable. That's how we ended up supporting three SQL engines: MySQL, PostgreSQL and Sqlite. Also avoiding breaking changes, frequently and intentionally. Finally aiming for 100% mutation coverage to avoid embarrassing mistakes once the systems running RES started accumulating gigabytes of valuable facts. Fun fact — when you don't introduce bugs, you may not be aware of anyone using your tool.
I've been involved in the development of RailsEventStore since its beginning. It was a long and exciting journey that lasted over a decade. I'm grateful for having a chance to meet and learn from so many people who shared similar interests and contributed to its growth. And surely I've contributed my part too — whether in 3107 commits, shipping dozens of releases with carefully crafted changelogs, organizing several focused coding sprints for fellow event-store enthusiasts, keeping up-to-date with other developments in the event store space, patiently helping folks on Discord, Discussions, Issues and finally being a leader and shaping the RES vision.
Over the time, RES became somewhat popular and recognized. And started bringing quality consulting leads. As an internal project, it could only get attention when there was a break from client work, resulting in short bursts of activity lacking the continuity needed to escape local minima. On one hand it was never enough traction to have a luxury of focusing solely on it. On the other hand, not too many external contributions to keep it lively. Keeping radical backwards compatibility with an increasing number of features reduced maneuverability. Relying on 100% mutation coverage set the bar high for new contributors. The rough edges kept being rough edges. Yet experimenting with new implementation on the side was seen internally as dangerous to the product and confusing to clients.
My biggest personal regret was the inability to move core discussions to public Discord out of the convenient but internal and closed Slack channel. And now I'm on the other side. My professional relationship with arkency ended after 15 years. RES remains their strategic OSS product. And it is time for me to move on.
You may still find me hanging around on Discord, helping folks on Discussions and occasionally writing about the RES internals and design decisions. I'm no longer leading, maintaining and releasing Rails Event Store but I'm definitely not leaving the event-driven space.