trying to understand the basics of modelling for Axon.
I have an aggregate (Project) that has lots of sub entities members, sub-project (different entity not a recursive project) etc…
Basically all decision making has to be routed through the base aggregate. You cannot really add, delete or do anything to entities for aggregate project without knowing the state of the project (closed, launched etc…).
If I model the project as aggregate and my entites as part of that aggregate (in maps and lists) and use the axonserver as eventstore I get many aggregates with aggregateSequenceNumber over 1700. Spooling that many events back when loading a project aggregate could affect perfomance I guess? I also guess that is possible to mitigate by configuring a cache? But is this a preferred solution?
If I instead model some of the entities as separate aggregates and get access between the root aggregate and the sub aggregates using queries I get few aggregats with more than 100 events/aggregate.
I cannot find any recommendation anywhere in the documentation. Could someone please advice on what is the best tradeoff?