The joy of multiple models – DDD as basis for Java modules and microservices

SpeakerHenning Schwentner

Software development is model building. We rebuild a part of the world as a program in Java and improve it by doing so. A traditional approach is to reproduce the domain as accurate in every detail as possible. But is this the actual goal of models? If we look close enough, we will see that a model is the exact oposite—a model is actually an abstraction of the reality in which only the essential is transferred. The inessential is left out of the model. What parts of the reality are essential or inessential is defined by the domain.

A simple model is easier to understand than a complicated one. Therefore, it is a good idea to break a complex reality into multiple simple models. Exactly this effect is what microservices and DDD with its strategic design take advantage of. Here instead of one complex company-wide model we build several small models that are easy to understand.

In this talk we look into the tools that are available to build good models and to divide the domain in a way that we can work with several teams independently from each other.