Nowadays, storage is cheap, but the information is priceless.
Event Sourcing, contrary to the standard approach, keeps all the facts that happened in our system. To do that, it needs an event store: a database designed for its needs.
This project aims to experiment with an opinionated Event Sourcing framework based on my experience working on Marten and EventStoreDB.
Take your event-driven applications back to the future!
Kinda. What is here is already usable, but you'll need to wait for the full production experience in all essential aspects.
Hopefully.
I like its minimalistic approach and flexibility, plus TypeScript is an excellent language with its shapeshifter capabilities. Plus, I've been asked if I could deliver such a store for Node.js.
Essential building blocks for designing and running business and application logic like:
- typings around events, commands, Deciders, Workflows, etc.
- command handling wrappers for application layer,
- basic, in-memory event store implementation.
- building blocks for the Web Apis with Event Sourcing and CQRS,
We'll see, but for sure, I'd like to have the following:
- implementation of event store using EventStoreDB, PostgreSQL, SQLite, etc.
- abstractions for building read models,
- building blocks for integration and running distributed processes,
- GraphQL API for event stores,
- Full stack development helpers with Next.js or HTMX,
- built-in open telemetry,
- running it serverless or on the web with SQLite,
- streaming data through HTTP API (and enabling integration scenarios through it).
- defining event transformations and projections with WebAssembly,
- etc.
Probably not. For now, I'd like to have a safe playground to have fun, experiment and try out new ideas. Still, I expect what I deliver to be safe to use in production.
Because I'm unsure how this will end, and I don't want to expose it as an MIT license from the beginning.
๐ If you'd like this initiative or want to use it potentially. Feel invited you join the group of my ๐ Github Sponsors.
GitHub โญ's won't pay the bills, so any help is more than welcome!