Member-only story
DDD — Events Are Complex
Why do Events matter so much in Domain-Driven Design?
The Evolution of Events in Domain-Driven Design
Most aspects of modern software engineering can be found in or traced back to Domain-Driven Design: Tackling Complexity in the Heart of Software by Eric Evans. EventSourcing is something that has evolved in the world of DDD practitioners and has become more mainstream in recent years. Why are Events so important when designing and implementing software, and why are they so well suited to Domain Driven Design?
Software is complex
Software models the real world and the real world is complex. Keeping the complexity to a minimum mitigates the risks that complexity brings in successfully delivering and maintaining software. There are two types of complexity. Essential Complexity and Accidental Complexity:
- Essential Complexity exists because of the real world complexity that software implements. We can’t avoid Essential Complexity.
- Accidental Complexity is introduced by us as software developers as we design and architect systems. Accidental Complexity can and should be avoided, although it isn’t always easy to identify and minimise.