I’d like to ask question about DDD features. Lets say we have two aggregates and each of them contains value-object Address. Accordingly to Eric Evans DDD, we should isolate aggregates from each other, so aggregate root of first aggregate can’t have a link to Address. Frankly, it doesn’t seem to make sense for me, so question is how to resolve such situation? Which aggregate should contain Address?
Thanks
You could have it using the same value object. But only do this if the aggregate roots exist in the same bounded context and hence has the same meaning for both aggregates. If the aggregates exist in different bounded contexts, then have 2 separate ones and duplicate. Leaking one bounded context’s concerns into another is what Eric is trying to fight.
To most, the concerns of entity vs. value object boil down to people having issues with duplication of data. We have been so trained to think in 3rd normal form of a single canonical model. DDD fights the inevitable complexity that that brings by forcing duplication where it’s needed and allowing concepts that were once thought to be one into many.
Hope this helps