Event versioning
Events stay stored for years, while the code that reads them keeps changing. Add a required field or rename a property, and the old events still have to load correctly. Changing events is less scary than its reputation, but you have to plan for it.
The first article shows the cheapest option: design so you rarely need it. If streams are short, old event formats disappear on their own. The next ones go through simple, repeatable ways to handle a change, from adding a field to converting old events into the new shape as you read them. You’ll also see how to catch a breaking change in a unit test before it reaches production, and how to control the way events are saved and loaded.
Start with the first article. It may save you most of the work the others describe.

How to (not) do the events versioning?
2020-12-23Developers that are not running a system in production might call themselves lucky. They can live in their perfect world. It is a world where there are no problems…
Simple patterns for events schema versioning
2021-12-08Events (schema) versioning is a boogeyman for people learning Event Sourcing. They’re a spooky tale told at the campfire. There’s a truth in it, as migrations are always…
Announcing Strictland - new contract testing library for message compatibility
2026-06-15I just released something. It’s called Strictland. And it’s a contract testing library. Why did I do it? Before I go further, if you can’t wait, you can check it on…
Mapping event type by convention
2022-11-27Events are an essential block of Event-Driven Architecture. They represent business facts that happened in our system. We can use them to integrate business workflow…
Explicit events serialisation in Event Sourcing
2022-12-23Events serialisation is an intriguing topic. On the one hand, it’s part of the campfire spooky tales, so (in)famous events versioning. On the other, we’re just taking…
Event Versioning with Marten
2022-09-07War never changes; migrations are always complex. It’s always a mind gymnastics and searching for risks and what may go wrong. Sometimes we try to cheat, ignore the…