how is the test done? Are all commands fired using a single thread, or multiple?
Do I see correctly that you included the event handlers (updating a mongodb) in the test as well?
Did you use the FileSystemEventStore? If you were using the JpaEventStore, I could explain the downgrade at 1100 events: events are retrieved in batches of 1000.
Anyway, interesting data to see. Thanks for sharing!
you are currently using a StringBuffer in a non-multithreaded situation. Your test will be a bit more reliable if you use a StringBuilder or BufferedOutputStream instead.
Your explanation of the “lag” at 1100 events per aggregate in the FS event store makes sense. This is a good test to identify the number of events before requiring a snapshot, by the way.
Was not aware of StringBuffer issues, thanks.
I've added two series (columns O,P) with StringBuilder.
What we see after >1300 there is a huge penality for the first time
the aggregate gets build.
We can assume this is due to empty cache of the HD-controller.