Event Sourcing

19th June 2024

In my last post I mentioned that I recently worked on a project where we were asked to follow a CQRS and Event Sourcing approach. In that post I linked to some articles that I found useful in explaining CQRS and here I will do the same for Event Sourcing.

Martin Fowler's Event Sourcing

This is a pretty detailed intro and was useful when I was experimenting with a PoC to show how we might use event sourcing in our system.

Microsoft Learn - Event Sourcing pattern

A nice general article that included a decent section on when and when not to use event sourcing. I think this is also the first time that I saw CQRS mentioned as something to use in tandem with event sourcing.

Event Store - A Beginner's Guid to Event Sourcing

Another detailed introduction. I think this was the one that really helped me to understand what event sourcing is all about. Like the Martin Fowler article, this one was also useful when I was working on a PoC.

Chris Kiehl - Don't Let the Internet Dupe You, Event Sourcing is Hard

An interesting article that explains some of the experiences Chris Kiehl had creating an event source based application. I didn't find this article until after I had completed my work implementing event sourcing though I wish I had discovered it earlier! His concluding section really struck a chord, in the system I was working on we really only needed a CRUD model with an audit trail and there are many ways to implement that which don't require event sourcing.

CQRS

17th June 2024

I recently worked on a project where we were asked to take a CQRS and Event Sourcing approach. Event Sourcing was new to me but I had followed a CQRS approach a few years ago but needed a bit of a refresher.

In case I ever need to re-visit CQRS in future, I'm noting a few links that I found useful below:

NestJS CQRS module documentation

We weren't using Nest but the examples this contains were pretty useful in detailing how we might implement a CQRS approach.

CQRS From Scratch With TypeScript by Jesse Neumann

This gives a nice introduction to CQRS and also an example of how you could set up the Command part of an implementation.

Martin Fowler's CQRS

The Jesse Neumann post above led me to Martin Fowler's article. I really enjoyed this piece, particularly the 'When to use it' section. The warnings here match my experience, and I would warn against taking a CQRS approach for the sake of it.

Welcome

19th August 2023

Welcome to the site!

Content is quite sparse at the moment as I work out what I want to do with the site.

At the moment most changes are behind the scenes as I use this as a playground for trying out new website technologies but I may add more general/visible content in future.