I’m trying to understand the limits regarding subscriptions. So far, I’ve not been able to find any guidance regarding the overhead for each additional subscription. But my initial naive testing has me a little concerned.
With one subscriber to $all, with ES on Windows (no difference with Docker), insecure etc., and a local c# client, I can process a trivial message and ack it, in under a ms. This is what I would expect. The processing is “do nothing” for this test. So just receive and ack.
As soon as I add a handful more persistent subscribers - each in their own subscription group - this climbs to 5ms. It feels roughly linear - 16 subscribers is 20ms.
I’ve read some posts that say you should use a downstream queuing system when you have too many subscriptions. Numbers are not given for “too many” but I would have thought higher. Introducing another queueing system obviously has it downsides.
Overall I’m a little surprised not seeing this impact. I would have thought each subscription group checkpointing would not affect the others, and be really quick.
What should I know to understand the performance here, in order to reason about how ES will behave, and to design accordingly?
Much appreciated any tips.