Say hello to Eventuous 👋

Honestly, I like heated debates on Twitter; I really do. Due to the nature of my work as a Developer Advocate at Event Store, I engage in many discussions about Event Sourcing. I hear a lot that the idea is great, but using it in real life is way too hard. As I am involved in building production systems, which are event-sourced from the start, I tend to disagree with this statement. I feel that people aren’t familiar with some of the implementation details, scaring them off. Unfamiliarity is often mistaken as complexity.

In fact, I strongly believe that Event Sourcing removes a lot of complexity from business applications. You don’t need to spend hours and days trying to figure out how your complex domain model can have its state persisted in a bunch of tables in a relational database. Neither would you get puzzled by the question “how my system got to this state?”, as the answer is in front of you.

Then I get people telling me: we need some baseline, which we can use to build something real. The more traditional persistence patterns accumulated lots of knowledge and experience dealing with common gotchas also represented in libraries and frameworks. Those tools give developers a solid foundation for their daily work. In the Event Sourcing world, we might feel uncomfortable also because we don’t feel this presence of past knowledge implemented in code, which we can use.

That’s how Eventuous was born. It is based on years of experience building production-grade systems using Event Sourcing in different industries. It doesn’t have many guide rails, preventing you from making mistakes; that is not the goal. Eventuous gives you “just enough” bootstrap for your application.

I am using the library myself on a daily basis. That’s where the changes and fixes are coming from, as I find issues or need a bit more. As I mostly use EventStoreDB and MongoDB for persistence, that’s supported out of the box. If you need more, consider contributing as I won’t spend time building something I don’t need.

Packages are available on NuGet, but there’s no release version. All preview packages are reasonably stable. I don’t plan to put a “stable” version out as I don’t think the API would be stable enough any time soon.

If you are using Eventuous commercially, consider sponsoring it as an organisation. If you are an individual and just like the library, consider supporting it with a small amount. Even symbolic donations give me the feeling that I need to continue doing what I do. For consulting and paid support, reach out to me via Ubiquitous.

See also

Eventuous documentation

Originally published at https://zimarev.com.

Alexey is the Event Sourcing and Domain-Driven Design enthusiast and promoter. He works as a Developer Advocate at Event Store and Chief Architect at ABAX.

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

Running postgres docker container as a custom user

A pot-pourri of stuff I learned in week 5 at the Devslopes Academy Web program

How to Fix Android is Unable to Format SD Card Problem

A Simple Sonic-Like Character Controller

Desgining APIs with Clean Architecture

Clean Utensils in a Bicket

Building Something From Scratch — Week 2

Ways to Inspect elements for Mobile automation — Appium (Android particularly)

How to speed up time for your own translation image function #2

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Alexey Zimarev

Alexey Zimarev

Alexey is the Event Sourcing and Domain-Driven Design enthusiast and promoter. He works as a Developer Advocate at Event Store and Chief Architect at ABAX.

More from Medium

Caching strategies for authentication

Command and Query Responsibility Segregation (CQRS) Architecture

WebSocket vs Server-Sent events

1. Microservices foundation