So you’ve moved from a legacy database-centric architecture to a brand new Domain-Driven Design approach. Your coworker told you that this would be about speaking the language of the customer and putting the primary focus on the business domain logic. But now you find yourself looking at aggregate roots, command buses, event projects and process managers, and wonder what they have to do with that. Moreover, what used to be an easy change now requires editing at least seven different files. How did we end up here?
In this talk we will look at an evolution from CRUD to a modern architecture based on DDD and adjacent patterns like CQRS and Event Sourcing. We will follow the thought process that led to each of these new tactical constructs, see which problems they solve, but also which disadvantages they have. This talk is not a criticism of DDD, but aims to show where it and related patterns shine (and where they don’t), so you can make a deliberate choice where and when to apply them and develop to their strengths.