Before you dive into this topic - there is a new Online Course âImplementing Eventsourcingâ, that will guide you step by step through this process. Find more details at the end of this article.
Iâm sitting at the airport, waiting to board my flight to Amsterdam. The buzz of people rushing around always makes me reflect on movement and flowâhow everything is interconnected, much like our models in Event Modeling.
Each week, I aim to dive deeper into a topic inspired by the podcast or the Event Modeling community. Todayâs focus? Keeping models maintainable.
We just wrapped up recording Episode #9 of the podcast, and once again, the discussion was lively and full of insights. If you havenât listened yet, I highly recommend it. Weâre working on keeping episodes shorterâaround 25-30 minutesâso theyâre perfect for your commute or any time you want to dive into Event Modeling and Event Sourcing.
This week, we tackled a critical question: How do you keep models maintainable over time? If your team has started using Event Modeling, youâve likely wrestled with this question too.
Hereâs the truth: Iâve been in countless rooms with teams starting their Event Modeling journey, and the process always follows a familiar pattern.
1ď¸âŁ The First Session: Enthusiasm Everywhere. The team dives into the basics, and it all makes so much sense. You can see the lightbulbs going off. Everyone is eager to get their hands on the model.
2ď¸âŁ The Second Session: Questions and Doubts. Then the reality of modeling hits. âHow do we handle this scenario?â âIs there a better way to represent that?â Suddenly, what felt simple starts to feel overwhelming. Some team members may even start doubting the approach. âIn code, this would just be a few save calls to a repositoryâwhy are we making it so complex?â
3ď¸âŁ The Third Session and Beyond: Clarity Emerges. With persistence, things start clicking into place. The connections make sense. The power of modeling becomes apparent. And the team begins to embrace this new way of thinking.
Itâs a paradigm shift. The same thing happened when agile and Scrum emerged over a decade ago. At first, it feels like an uphill climb. If youâre not used to event-driven thinking, it can be confusing.
But then thereâs a turning pointâa moment of clarity where you see the possibilities.
Still, one of the biggest fears teams face early on is this: âWhat if we break something in the model?â
If that resonates with you, youâre not alone. And Iâve got some tips to help you navigate this challenge and keep your models maintainable over time.
Letâs dive in.
Miro History View
Especially when you Model in Miro (but also other tools), you need some kind of history to track changes over time. If you were on vacation for two weeks, you want to be able to quickly tell, what areas have changed in the meantime.
In Miro you can use the âHistoryâ View for this.
There you will find a checkbox âhighlight changesâ, which will highlight the changes since your last visit (pink background)
And of course Miro has a full history and allows you to restore the board at any point in time.
Change is the exception
If youâre just starting with a new model, you might feel like youâre drowning in constant motion. Everything is in flux, and the idea of keeping up feels impossible.
Imagine saying, âHighlight changes,â and seeing the entire model light up like a Christmas tree. Overwhelming, right? How can anyone work like that?
Hereâs the good news: youâre not supposed to.
This kind of chaos is typical at the start of modeling. When youâre first building slices in your model, thereâs naturally a lot of movement. But hereâs the secret: once a slice is fully modeled, it becomes surprisingly stable. I even consider them immutable.
In fact, most slices donât change muchâsome might never change at all. The only reason a slice should change is when requirements change.
Thatâs where intentionality becomes your superpower.
In my experience, treating slices as immutable has been a game-changer. When a new requirement comes in, I donât just dive into the model and start editing recklessly. Instead, I follow a deliberate process that keeps things clear and manageable. Hereâs what I do:
1ď¸âŁ Capture the Existing State. Take a screenshot or copy the current slice(s), including their âGiven / When / Thenâ scenarios. This snapshot becomes your reference point.
2ď¸âŁ Reset to the âCreatedâ State. For each affected slice, reset it back to the initial âcreatedâ state. This helps you identify exactly how many slices will be impacted by the new requirement.
3ď¸âŁ Adjust the Model Intentionally. Carefully make the necessary adjustments to the model, ensuring every change aligns with the updated requirement.
4ď¸âŁ Update the Code. Once the model is updated, reflect those changes in the code, ensuring everything stays in sync.
Hereâs the mindset shift that made this process so effective for me: Treat changes in slices as entirely new slices. Instead of trying to patch up the old, I often regenerate the slice from scratchâincluding tests. This not only simplifies the process but ensures that every change is clean and intentional.
By treating slices as immutable, you reduce the chaos and keep your model maintainable, no matter how complex it becomes.
So the next time you feel overwhelmed by change, remember: itâs not about keeping up with the chaos. Itâs about stepping back, being intentional, and finding stability in the process.
Does that make sense to you?
Last but not least..
This is another small success story from the Eventmodeling Community last week..
Want to work with me?
Iâm constantly looking for teams that want to upskill their productivity using Event Modeling & Event Sourcing.
Want to see it in action? There is a webinar recording showcasing how this typically works.
Just contact me if you are interested in that!
Have a nice rest of your week!
Want to learn it faster in a practical way?
The Online Course âImplementing Eventsourcingâ gives you exactly that. Itâs a perfect companion to the Book âUnderstanding Eventsourcingâ!
Everything I know about Evenet Modeling & Event Sourcing in one course.
Martin Dilger
Join the Agentic Engineer Program
Apply Spec-Driven Development Hands-On - Event Modeling, Event Sourcing, and AI Engineering with autonomous agents.
Book a Call Today
Want to talk through how Event Modeling could work for your team or project? Letâs have a quick, no-pressure conversation.
