We are considering using EventStore in production, and I am pretty impressed, but I do have a concern that I can’t seem to find an answer for (sorry if this is somewhere I have spent about an hour searching before posting!).
We have an event driven system today (using NServiceBus over MSMQ) and make use of the ability to have multiple workers processing events in parallel, at first glance it seems that a competing consumer subscription would be useful for this as that would allow us to have N processors each responding to an event that requires additional processing.
Is it possible to create a competing consumer subscription to a specific event within a category (i.e. all “OrderAccepted” events within the “Order” category so that we could start an asynchronous billing process?
My understanding is that this would require the use of a projection where each of the events from the individual streams are linked?
If so, would this be subject to the stream limit of Int.MaxValue?
Would there be any way of recovering if our system had sufficient events to raise this projection to near that level of events?
If we were to remove older, no longer necessary events would these still count against the limit?
Given the volume we are expecting a total of Int.MaxValue events is not unreasonable across all event types and streams in a category - is this an issue?