Member-only story
Simply Event Sourcing
Aggregates Were Never Required — Command Context Consistency and DCB’s Tag-Based Contract
Why do I write this article? Because I see a lot of confusion around Event Sourcing. In my practical work over the last few years, I have repeatedly seen teams perceive Event Sourcing as something complex that is not always necessary. I think the reason for this is easy to explain and understand. The enterprise software development I encountered over the last decades was shaped by object-oriented programming and the tactical design patterns of Domain-Driven Design. For more than a decade, this was also how I thought Event Sourcing worked. In my mind, Event Sourcing was linked to aggregates.
The problem with this entire approach is that we always have to start by designing aggregates and building centralized models of objects like Customer or Order in order to establish consistency boundaries. This means making too many assumptions early on about how things might be. All subsequent behavior must inevitably fit into this structure. Experience has shown me that this makes the development process inflexible and cumbersome.
I really came to understand this when I was working on the idea of self-contained feature slices but was still stuck thinking within the confines of Domain-Driven Design (DDD). It is…










