Search code examples
entitydomain-driven-designaggregateddd-repositoriesaggregateroot

Aggregate for one entity


In Domain-driven design if I want to use a repository I need to have an aggregate for it - as I understand.

So I have a User, that has id, login, email, and password. A user is a domain Entity with unique Id.

When i want to add a User to User repository, should I build first an Aggregate with only Aggregate Root that is my User entity and nothing more? It looks like a proxy to User in this case, unneeded layer.

Or maybe I missed something here? Maybe User isnt an Entity, even if it looks like this. Or maybe I can put an Entity directly to repository?


Solution

  • An aggregate root (AR) is an entity and it's very common to have entities which are the root of their own aggregate.

    Your User entity would simply be an aggregate root. You do not need an extra concrete class.