- Speakers
Arnaud Courtès and Julien Gaubert
- Description
(This is a hands-on lab with limited capacity)
Aggregates are one of the most central — and most misunderstood — building blocks of Tactical Domain-Driven Design. Many teams struggle with anemic domain models, unclear transactional boundaries, and aggregates that fail to protect business invariants.
In this hands-on workshop, we will start from a typical enterprise CRUD-style domain model and progressively refactor it into a well-designed aggregate. Through guided, code-first exercises, participants will explore how to identify meaningful aggregate boundaries, choose an appropriate aggregate root, and reason about transactional consistency.
Rather than focusing on producing “perfect” code, this workshop emphasizes how to think about aggregates, using practical heuristics and concrete refactoring steps that can be applied to real-world systems.
Prerequisites
Experience with object-oriented programming Basic familiarity with Domain-Driven Design concepts is helpful but not required Laptop with development environment
About Arnaud Courtès (he/him)
Arnaud works in computer science since 20 years and discovered software craft and DDD in 2018. He has led several meetups in Paris on best practices with several katas and presentations. He has led also workshops and training sessions on refactoring and domain modeling. He pays a close attention to share his experience and mentor development teams. He co-facilitated a hands on lab last year in DDD Europe 2025 with his colleague Dorra Bartaguiz on Elevating Tactical DDD Patterns through Object Calisthenics.About Julien Gaubert
Julien is a Tech Lead with 20 years of experience building and evolving backend systems in Java. He regularly applies Domain-Driven Design in his professional practice and mentors development teams on software design and maintainability. Focused on making design principles concrete and applicable in real-world contexts, Julien enjoys working with existing systems and helping teams improve their codebases incrementally. He has led workshops and training sessions to share practical experience around object-oriented design and domain modeling.