DDD is a philosophy of software development. It is not a static set of patterns. As technology and project goals change, we have to go back to the deep principles and reapply them to new circumstances. We also have to look at the results we’ve had in previously conventional projects and scrutinize things that are not working well. Yet all that relies on the fundamentals of DDD being solid.
In this talk, I'll try to dig down to the root assumptions, and challenge each one as well as he can. A practical philosophy such as DDD can only stay relevant if we continue to shake it up, discarding things that don't hold up and clarifying the enduring aspects.
So this isn't one of those rhetorical tricks, where I resolve all the issues at the end. I'm gunning for the foundation: not to make the case for DDD, but to probe for problems. I might even convince a few people watching that DDD is unsound! I hope I'll inspire a few other members of our community to look for deeper insight and continue to refresh our distillation of DDD.