Our great sponsors
-
SurveyJS
Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App. With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.
-
esdf
A minimal event-sourcing / domain-driven design framework for Node.js, aiming to help produce fast, reliable and maintainable software.
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
This is cool to see! I haven't really seen other uses of non-OO event sourcing in NodeJS. My library (evtstore) looks very similar to this, but it uses other popular databases (postgres, mysql, mongodb, ...) as a backend instead.
Good article. And for production ready robust event sourcing, open-source project - Rudderstack can be used. Which requires to drop in the front end SDK in the code and specify the data destination.
Thanks for the feedback and the link! Indeed that looks similar. I think that too many NodeJS tooling is made by C# or Java devs bringing their OOP habits. In my opinion, TypeScript and NodeJS development shines the most when you're cutting all the boilerplate and keeping things simple. Functional composition helps in that. I'm also coming from the .NET world and am co-maintainer of the Postgres-based library: https://martendb.io/, but I try to keep my OOP habits on a leash ;) Out of curiosity, how are you dealing with the eventual consistency and the read-your-own-writes guarantee on MongoDB in your library?
https://github.com/rkaw92/esdf - the library
https://github.com/rkaw92/esdf-store-redis - the storage adapter for persisting, rehydrating and streaming events
Mutable entities - i.e. "normal people classes" - https://github.com/rkaw92/esdf2/blob/main/src/test/mutable.test.ts