hollycrab
hollycrab

Reputation: 325

Aggregate roots and repository in DDD

I just started on DDD and encounter the term aggregate roots.

My current understanding is that this is kind of a parent entity that hold reference to other complementary entity. Example : aggregate roots will be Employee that also contain position, shift, gender, and salary. My first question will be whether this understanding is correct ?

Secondly, I get an impression that repository is defined only for each aggregate. Yet, it puzzles me how we could retrieve information regarding other entity (Ex: list of positions or shift type) ?

Thank you,

Upvotes: 7

Views: 10249

Answers (1)

tomliversidge
tomliversidge

Reputation: 2369

Aggregates are consistency boundaries to enforce invariants. This means that the entities and objects inside the aggregate must remain consistent together with regards to the business rules.

Secondly, I get an impression that repository is defined only for each aggregate. Yet, it is puzzle me how we could retrieve information regarding other entity (Ex : list of positions or shift type) ?

You can have a separate read model over your data if you choose to do so and it makes sense that the business wants to view the data in a different way. The consistencies you need to enforce when you are writing data do not apply on the read side. CQRS is the pattern to help with this - you separate your write side from your read side.

https://lostechies.com/gabrielschenker/2015/04/07/cqrs-revisited

Upvotes: 8

Related Questions