I'm building a system thats very data centric. I have large hierarchical datasets but no business rules. The output of the system comes from some calculations done on the data and a number of reports. I need to have a complete audit trail (for regulatory reasons) and be able to run the calculations against a dataset from any point in it's past.
For these reasons I thought having an event sourced system using CQRS was the way to go. All the examples I've seen revolve around creating aggregates to do ES. The problem I have is because each piece of data is one large related set I'd have a small number of massive aggregates. The alternative seemed to be splitting the set up into it's parts and calling each one an aggregate. But, in order to do any calculation I would have to load hundreds of thousands of aggregates.
My question is, does anyone have experience of CQRS + ES systems that are data centric and what that might look like?
Is there a better way to store the history of a dataset without using ES?
Thanks for any help.