![domain driven design aggregate domain driven design aggregate](https://www.thoughtworks.com/content/dam/thoughtworks/images/photography/inline-image/insights/blog/evolutionary-architecture/blg_inline_domain_driven_design_services_architecture_02.png)
Cause, the design of the application does not represent the domain of the system. Have you ever heard that a developer of your team is talking like he does not have the domain knowledge of the whole application? Perhaps yes! I think you can understand the reason. See, when you design a system you need to know what as a whole the application will do? What is the goal the client is trying to achieve? Then, from the top level goal you come up with different smaller functionalities that will eventually allow the users to achieve the top level goal.īut when you design in bottom-up approach, you first design for the granular functionalities, and you have little or no knowledge how this functionality will be used from the Top level and how the Top level functionalities will actually look like. Rather it tempted us to design the system in Bottom-Up fashion.
![domain driven design aggregate domain driven design aggregate](https://i.ytimg.com/vi/RNUn2R7TptM/hqdefault.jpg)
But do you know why? The reason is, traditional approach do not guide us designing the system in Up to Bottom fashion. I am sure you have been facing these issues regularly. Looking at your objects it is not possible to understand what actually the whole application is all about.You have no or very poor relationship among related items.You have objects that have properties that are not actually attributes of that object.You have more than one object for the same item.
![domain driven design aggregate domain driven design aggregate](https://res.cloudinary.com/dltpyggxx/image/upload/v1426190040/AR_gyjejd.png)