So right off the bat I did find a thread from last year stating that competing consumers won’t work for $all and would require a fair amount of work to do. I’d just like to add my use case into the mix for future consideration.
In my app I’m not using event store internal projections - Im just using the event store to store events.
I have multiple console apps doing a catch up subscription to $all handling events only they care about. So I have an “Elastic” service which listens for some events and writes data to elastic when something interesting happens, and a “Mongo” and a “SQL” etc etc. In essence I did my own projection functionality. Not because I didn’t want to use eventstore just because I wanted to handle events the same way NSB handles commands and not worry about constantly tweaking javascript.
Problem I am having as I transition into a more high dense deployment is individual $all consumers just can’t keep up with the event stream and end up disconnected from the store after a few hours. If I could compete with $all I could spin up 3-4 “Elastic” consumers to $all and events would be fed to each in turn.
I hope I explained my case well enough and will be watching for any development regarding this feature.
In the meantime I am thinking of trying out the linkTo trick mentioned in the previous thread, or even just hashing the OriginalPosition to determine if a consumer should pass or process a specific event
Thanks