Event Sourcing: undo set-remove-based bi-temporal events – because we must

In part thirteen of this event sourcing series, we expand on set-remove-based bi-temporal events. In certain scenarios, we need to be able to undo events typically because a user made a mistake. I ll show you two approaches to solve this issue, why the obvious simple approach fails, and why we prefer one over the [ ]