Discovering Aggregate Implementation Patterns via "Code Koans"

Thursday afternoon 14:00 - 16:00 CET (UTC+1)


Anton Stöckl and Dagmar de Haan


There are many ways to implement the Aggregate pattern from Domain-Driven Design:

  • OOP style or functional style
  • traditional or event-sourced
  • inline state, external state, on-the-fly state (reconstitute inside the aggregate)
  • reconstitute the full state or just the minimal state needed to make decisions
  • recording changes or returning changes

We will discover as many of those variations as possible during the workshop.

Attendees will implement different variations of the same Aggregate in a “Code Koans” like fashion. For each variation there will be test cases and a skeleton which has to be filled with the missing code to make the tests green. We will supply a repository with Java Code.

Practical information

Please prepare for the workshop:

  1. An IDE for Java development (you can get IntelliJ CE here:

  2. Clone our GitHub repo: (The default branch is “challenge” - please do yourself a favour and don’t look at the “solution” branch before the workshop!)

  3. The only dependency is junit and our repo contains gradle files to help to install it (also for non IntelliJ IDEs).

  4. We will split in groups and each group should do mob programming, swiching the driver for each coding challenge. For sure you can also work alone (if you absolutely prefer that).

About Anton Stöckl

Senior IT Architect @ MaibornWolff Twitter LinkedIn Blog Company Website

Anton Stöckl works for MaibornWolff GmbH in Munich as a Senior IT Architect since 2019.

He brings along more than 2 decades of experience in professional software development with roles as developer, software architect, and team lead.

He is especially interested in Domain-driven Design and how to build solid and loosely coupled Microservice architectures.

Another important aspect for him is “socio-technical architecture” - a holistic approach to align IT architectures and autonomous agile development teams.

He loves to coach or mentor development teams, run workshops, and to write blog posts.

Some other important paradigms, architectural styles, and modeling methods he likes to apply:

  • Hexagonal Architecture (aka. Ports & Adapters)
  • Event-Sourcing and CQRS
  • Distributed, event-driven systems
  • Event Storming
  • Trunk-based development

Lately, he is working with Golang using a functional style of programming as much as possible and applicable.

About Dagmar de Haan

IT Architect @ MaibornWolff Company Website

Dagmar de Haan has been working as an IT architect at MaibornWolff in Frankfurt since 2014. Since her beginnings in software development a good 20 years ago, she has been concerned with the question of what makes good software, how it is created and above all how it is preserved.

Her main interests include

  • Agile software development
  • Design pattern
  • Clean code
  • Software reengineering
  • TDD
  • Voice control with Alexa