Dealing with complexity (DDD Motivation 6)

The subtitle of Eric Evans's DDD book is "Tackling Complexity in the Heart of Software". So, dealing with complexity is at the very heart of DDD.

One way I see it is that we would like to work with essential complexity, avoiding accidental complexity. The accidental complexity will hurt us, probably by distracting us so it is not possible for us to take care of the essential complexity.

There will always be some accidental complexity around as well, but we should at least try to partition it out from the very core. For example, don't let the infrastructure mess up your domain model.