When putting event handlers in different packages multiple tracking event processors are instantiated as expected. Each has their own GapAwareTrackingToken.
We have a use case where one part of the commands is generated by an external system reading large csv files.
The other part are user generated commands through an API layer.
It is ok for the processing of the csv files into the aggregates and finally read model to take some time. We currently use Kafka as middleware to stream the csv lines into the command bus.
However we want to make sure that the user commands are processed faster.
When separating an event handler that was only processing the events caused by human generated commands in another package it was correctly handling the events, but it seemed rather slow.
The user command event was set at around index 4000, while both tokens were incrementing at about the same speed. Only after the user event processor reached 4000 the command result was inserted in the view model as expected.
Maybe I am wrong to assume this but I expected that the tracking event processor which is only interested in one or a few events would be able to process the events faster than one that is handling more of them. However the token index increased at roughly the same pace.