Can You Handle the Responsibility?

This all seems fine and good. It appears simple enough. We have Product-Owner and TeamMember Aggregate types, and we’ve designed them so that each holds some information about the backing User from the foreign Bounded Context. But did you realize how much responsibility we’ve just assumed by designing these Aggregates that way?

Recall that in the Collaboration Context the team decided to just create immutable Value Objects that hold similar information (see “Implementing the REST Client Using an Anticorruption Layer”). Because the Values are immutable, the team will never have to worry about keeping the shared information up-to-date. Of course, the downside to that advantage is that if some of the shared information ...

Get Implementing Domain-Driven Design now with the O’Reilly learning platform.

O’Reilly members experience live online training, plus books, videos, and digital content from nearly 200 publishers.