Cem Yasar
2 min readFeb 28, 2025

--

I want to thank you for sharing this clear example. Even I wanted to write a similar article with a car example, similar to Eric Evans but it would be similar to your bicycle example :) Actually this article cleared my thoughts about Domain Model vs Aggregate and especially the concern about aggregate in aggregate in aggregate... :) Even I was thinking about engine in a gas pedal problem :))

Actually in ordinary world, such as with this bicycle assembly process and production, we write the procedures on paper and we apply the rules. However in software world we apply the rules/checks by writing them in the software itself :) In real world, if we need movable, changeable parts, we construct them as movable and changeable, such as wheels, even, as you mentioned they are also complex structures, even the tire! But how can we achieve in software world? In software world, actualy we are very flexible in designing the things based on the required complexity. Yes, the magic word is "required or not" :) Understanding the requirements... that is the magic part! However, in real world, everything is complex, even the atom itself :)

Thinking factories, integrations, etc, DDD really approximates the software world to real world, and, actually, it is its aim. However how far do we need to approximate? This is the challange and a lot of software devs and engineers are very good players, however being an architect in this challange is kind of being a orchestra composer. It requires talent and also so much experience. Beign a very good violin player, saxophone player is also really important, such as being low lever programmer, front end developer, web api developer, db admin, system managers, etc. Even, you maynot be good on composing a huge mechanism, it is hard to do, however understanding the business with all those dimensions is also crusial, plus for a violin player as well.

Thanks again for this great article, I am enlightened so much,

Regards,

--

--

Responses (1)