Hello,
I am currently refactoring big application using DDD.
The application deals with renting flats etc.
Till now I was refactoring parts of the application, which had rich behaviour and almost every data in the aggregate was needed for related logic.
But now I came to to place, where I am having aggregates with like 90% CRUD data and like 50% never change after object creation.
The CRUD data, contains some logic only when being initialized (validation requirements). So I have created Value Objects for them, to validate them on creation.
But after they are created, part of them just take space in the aggregate and do nothing, other part may be replaced with new VO, but never perform any kind of aggregate logic.
I don't feel like having all this properties inside an aggregate, because it's getting huge and not really needed.
The data containing logic and CRUD are part of the same Bounded Context. So I don't feel to split them out into separate ones.
I could create two aggregates within same module, like
Rental (aggregate with rich behaviour)
RentalData (aggregate with CRUD)
Both correlated by same ID and created at the same request.
But I don't know, if if is correct way to go.
Would really appreciate any advices.