I am trying to go over Eventflow to use on a POC after deciding I dont want to create my own implementation of Event store and Event Hydration. Eventflow looks like a good option. I currently use Mediatr and with eventflow to keep things minimum I would use its Command Handling and Event Emits.
I got stuck on one line in Documentation "In an event source system like EventFlow, aggregate root data are stored on events."
Does this mean each time an event is stored in database/ event store it is also storing the current aggregate with its state?
Why does it need to store the agrregate with event? Applying events when loading an aggregate should bring back the state , right?
Also believe if it does so, the event itself is fairly light weight and the aggregate data storage is going to make it bulky.
What purpose does it serve?
Did I understand the statement incorrectly?
links
https://eventflow.readthedocs.io/Aggregates.html
Thank you,
Mar
Below is result of further study. I did small test app and was able to ascertain that event is serialized without aggregate information. May be what was meant by "In an event source system like EventFlow, aggregate root data are stored on events."
It stores AggregateId, AggregateName but Data contains just deserialized info from event.
only thing that I see now and having may be more than required data is metadata. I am not sure where it is being used , aspecially use of http header other data data is already stored in other fields in same record (like sequence number and aggregate id).
I will suggest eventflow team make this more evident on their documentation. It will help Newbies like me. May be add an example of how event data in storage looks like.
I will leave this answer without accepting it just in case there is a better one with more information.