0:00
/
Transcript

"Event Modeling: The Blueprint for Building Maintainable Software" with Adam Dymitruk

Episode 005: ALT.NET, Event Modeling, and Hot & Spicy Takes

Adam Dymitruk is the creator of event modeling and the CEO and founder of Adaptech Group, a consultancy that builds information systems using event sourcing and event modeling. A software developer with over three decades of experience, Adam is a core contributor to CQRS and event sourcing theory and practice since 2008, a top 0.1% Stack Overflow contributor, and one of the original voices in the ALT.NET movement. He’s currently writing the definitive book on event modeling, with a companion booklet due out first.

Episode Description

Why do we keep building software that breaks every time we add a feature? And what if there were a way to describe a system so clearly that business people, designers, and developers could all work from the same blueprint?

In this conversation, Adam Dymitruk traces a path from the rebellion of the ALT.NET movement in the mid-2000s through the rise of domain-driven design, the discovery of event sourcing, and the creation of event modeling, a notation and process for describing information systems that has quietly become one of the most practical innovations in modern software design. Along the way, Adam and Dave revisit shared history: the nHibernate Mafia, the fight against sealed classes, the moment when Martin Fowler’s 2005 article on event sourcing planted a seed that would take years to fully grow, and the community of developers who decided they’d rather take care of each other than wait for permission from Microsoft.

The heart of the episode is Adam’s case for why event sourcing and event modeling eliminate entire categories of problems that most teams accept as inevitable: the hockey-stick cost curve, the coupling that turns codebases into houses of cards, the schema migrations that become existential crises, and the tech debt that accumulates because every new feature has to touch code that already works. Adam explains how Adaptech Group has built its business on fixed-cost contracts and free bug fixes, not as a loss leader but because the architecture genuinely makes it possible. The conversation closes with Adam’s view on AI as the next irreversible point of no return, why event modeling provides exactly the kind of specification that AI needs to generate good code, and a first look at the two books he’s writing to bring this work to a wider audience.

Links & Resources

Guest Links

Books & Articles Mentioned

Tools, Frameworks & Concepts

  • Event Sourcing — an architectural pattern of storing state changes as an immutable sequence of events

  • CQRS (Command Query Responsibility Segregation) — a pattern for separating read and write models

  • Domain-Driven Design — Eric Evans’ approach to software development that became the intellectual home for event sourcing in the .NET world

  • Event Storming — Alberto Brandolini’s workshop format that influenced event modeling’s collaborative approach

  • ALT.NET — the mid-2000s .NET developer community that championed open source, TDD, and better practices

  • Test-Driven Development (TDD) — discussed at length, including Adam’s controversial position that event sourcing eliminates the need for it

  • Cucumber — BDD testing tool that Adam used before discovering that events themselves serve as specifications

  • Storyteller — Jeremy Miller’s graphical DSL testing framework for .NET that Adam used extensively for specification by example

  • NUnit — Charlie Poole’s open source .NET testing framework, a counterpart to Java’s JUnit

  • nHibernate — the open source .NET ORM ported from Java’s Hibernate; central to ALT.NET’s origin story (originally nicknamed the “nHibernate Mafia”)

  • Dynamic Consistency Boundary — an evolution beyond DDD aggregates for managing consistency in event-sourced systems

  • Specification by Example / Behavior-Driven Development — the testing and specification approaches that preceded event modeling

  • Open/Closed Principle — referenced by Adam in the context of event sourcing’s add-only architecture

  • Cursor — AI coding tool Adam used to demonstrate that event model screenshots produce correct implementations on the first try

  • Unix Philosophy — invoked by Dave to describe the component architecture that event sourcing enables: many specific tools that each do one thing well

People Referenced

Topics Discussed

The ALT.NET Rebellion and Finding Your People

Adam and Dave open by tracing their shared history in the ALT.NET movement, a community of .NET developers who pushed back against Microsoft’s top-down approach to software development in the mid-2000s. What started as frustration with sealed classes, proprietary tooling, and the “embrace, extend, extinguish” mentality became a proving ground for open source, test-driven development, and the architectural ideas that would shape both of their careers.

Key points:

  • ALT.NET (originally nicknamed the “nHibernate Mafia”) was born from developers needing to take care of each other because Microsoft wasn’t supporting the open source community

  • The community brought together TDD practitioners, open source advocates, and domain-driven design enthusiasts, creating the conditions for ideas like event sourcing to gain traction

  • Figures like Sebastian Lambla experienced the worst of Microsoft’s competitive stance, having their open source work overwritten overnight by official Microsoft alternatives

  • Both Adam and Dave credit ALT.NET as the environment where their points of view coalesced, particularly around DDD and event-driven architectures

From Domain-Driven Design to Event Sourcing

The conversation traces how DDD provided the intellectual soil for event sourcing to take root, beginning with Martin Fowler’s 2005 article and evolving through Adam’s own experiments writing his first event store in 2009. Adam describes the shift from thinking about domain models and objects to thinking about state changes, facts, and immutable ledgers.

Key points:

  • Adam wrote his first production event store in 2009 as a single page of C# code, proving the simplicity of the approach

  • The key insight: treat information the way accountants treat money, with full accountability and no erasures

  • Specification by example and BDD, while valuable stepping stones, became unnecessary once events themselves served as human-readable specifications

  • The community continues to evolve; practices like dynamic consistency boundaries are replacing traditional DDD aggregates, and event versioning through upcasters is giving way to handling multiple event versions directly in read models

Event Modeling: The Swiss Army Knife

Adam delivers his pitch for event modeling: a notation and process for describing information systems that looks like a sideways storyboard, captures state changes as events in plain English, and deliberately excludes implementation details. Born from the realization that his team at Adaptech was already doing something distinctive (they just thought they were doing BDD really well), event modeling was first formally written down at the Event Storming summit in 2018.

Key points:

  • Event modeling uses only three moving pieces and four patterns based on two ideas; it takes minutes to explain and the rest is learned in practice

  • No branching logic in workflows; the notation sticks to a storyline by example because human minds remember stories far better than they remember graphs

  • The UX/UI is a first-class citizen in an event model, not an afterthought, because every system is ultimately built for human beings looking at an interface

  • Event modeling functions as a blueprint comparable to architectural plans for a building: the plumber, the carpenter, and the electrician all work from the same document

The Flat Cost Curve and Why Coupling Is the Real Enemy

Adam makes a direct business case for event sourcing and event modeling: Adaptech Group offers fixed-cost contracts and fixes bugs for free. This isn’t charity; it’s a direct consequence of an architecture where new features don’t touch existing code, coupling is managed by design, and the immutable event ledger serves as the single source of truth.

Key points:

  • The “hockey stick” cost curve in traditional software comes from coupling: shared canonical models, CRUD operations that affect multiple consumers, and abstractions that break everything when they change

  • Event sourcing inverts this by using multiple purpose-built read models that each have exactly what they need, coordinated by an undisputed set of events

  • Schema migrations effectively disappear because new versions of data and old versions coexist naturally

  • The biggest conceptual barrier is the industry’s attachment to a single canonical model, an idea sold from academia through inheritance hierarchies that doesn’t mirror how real-world information systems have operated for centuries

AI as the Next Point of No Return

The conversation turns to AI, which Adam frames alongside the Commodore 64, the internet, email, Linux, and event sourcing itself as an irreversible “aha moment.” His own turning point was watching ChatGPT generate CSS animations in seconds that would have taken him three hours, and he sees event modeling as the missing link that gives AI the specification quality it needs to generate real systems.

Key points:

  • AI’s impact is comparable to how Google gave us access to everything, but AI gives us the ability to make sense of everything instantly

  • The bottleneck is shifting left to planning, which is exactly where event modeling lives: providing clear, structured specifications that AI can execute against

  • Adam demonstrated early success pasting event model screenshots into Cursor’s chat window and getting correct unit tests and implementations on the first try, even with less capable models

  • The Pandora’s box framing: you can’t uninvent the internet, and you can’t uninvent AI inference; the question is whether your specifications are good enough to benefit from it

Two Books and What’s Next

Adam closes with an update on his long-anticipated event modeling book, which is actually two books. Inspired by Eric Evans’ companion booklet to the DDD blue book and Michael Feathers’ reference-pattern format in Working Effectively with Legacy Code, Adam is releasing a concise booklet first, followed by a comprehensive reference book.

Key points:

  • The booklet comes first, designed to be immediately applicable, covering why event modeling exists, its core pieces, and the rules for assembling them

  • The full book will include the backstory and motivations, plus a library of reference patterns covering the top 90% of common information system scenarios (sign-up flows, payment integrations, checkout carts, pub/sub patterns, and more)

  • Adam deliberately delayed the book because he never wanted event modeling to require a book to understand, a lesson drawn directly from watching the DDD book’s intimidating thickness reduce its effective adoption

  • Martin Dilger’s Understanding Eventsourcing already covers event sourcing using event modeling throughout, giving the community a practical resource while the definitive event modeling book takes shape

Hard Boiled Software is hosted by Dave Laribee.

Discussion about this video

User's avatar

Ready for more?