Mathias Verraes advises companies on building software for complex environments. This involves primarily analysis and modelling, but also code, architecture, testing, and refactoring “unmaintainable” systems. He has worked with clients in Finance, Automotive, Government, Logistics, E-Commerce, and more. He teaches Domain-Driven Design courses and co-organises the DDD Europe conference. When he’s not working, he’s at home in Kortrijk, Belgium, helping his two sons build crazy Lego train tracks.
The software industry keeps moving towards more message-oriented architectures. These require different ways of reasoning about system design, domain modelling, evolutionary architectures.
Domain-Driven Design is exceptionally suitable for this: its fundamental principles are universal to software design, and apply well to all kinds of architectures: focus on domain language and collaborative modelling, Bounded Contexts, and mapping the relationships between Contexts. Read more...
Event Storming, Event Sourcing, CQRS, messaging, distributed systems … In one way or another, they’re all about time. Traditional modelling styles, focused on things and structures, are not the primary way anymore to build modern systems that handle complexity well. Object-oriented models tend to have an uneasy relation with events happening over time. The actual business processes, the heart of how organisations operate, end up hidden in the many calls between objects.
Temporal Modelling is the cure: build models and systems that make events and processes the first class building blocks of a domain model. In this talk, we’re going to look at how reasoning with time helps us better understand how to build our software.