I'm struggling with this problem for a long time now.
Lets say that I'm trying to model some business that has Customers, Companies, Contracts, Invoices etc. All of them looks like good candidate for aggregate root for me. The problem is that, lets say Contract would have a huge list of fields, and most of them would be required. So most of the time I end up with big aggregate root (a lot of data, some logic and invariants) with huge constructors. Even though I will break that into value objects its just minimizing a damage (instead of 20 i have 7 arguments) and most of the time those value objects are super artificial, does not event make much sense business vise, they are just some kind of data containers.
Second problem is updating this data. Should I add single method to update that, lets say UpdateAllThisJunkData(,,,,,,) or write one method for each ?
I also feel that aggregates like this are more CRUD kind and don't have much to do with DDD, but I also believe that we need to persist data somehow in the system even though its not using it to process any logic, just for historical and display purpose (user can make decisions base those values). Should I let say move that kind of data to different AR or VO ie. ContractData ?
There is also option that I'm paranoid and all is fine with my AR ;)
I would appreciate any thoughts