Filtering $all

We are subscribing to the event store clusters ALL subscription in our catch up processes.

The reality is that only between 1% and 10% of the events received at the client are application generated (depending on how busy our application is in that environment).

Our first optimisation is likely to be creating a projection based on the ALL subscription to only expose the application events, However, do we still get the ordering guarantee that comes with subscribing to ALL directly.

Yes but if only 1-10% of the events you receive are yours either:

a) you have some really funny settings
b) you have so little traffic that it really shouldn't matter

Greg

Hmm, that made me think a bit…

We have enabled the 4 system projections, and have one of our own.

Am I right that each of the system projections creates one extra event for each that we create (and our projection does create one more),

so 1 application event is creating itself and 5 other events are rippling into the all stream.

If that that would change the 10% to 60% of the events being application (and ripple effect ones). Does that sound more sane?

projections only checkpoint frequently on very low traffic.

Sorry Greg, too big a jump for me there, not sure if you agreed with the premise re event numbers, and not clear what you mean by “checkpoint”. Are you able to point me to any docs?

projections checkpoint occasionally. They do it on a schedule either
certain number of messages or certain amount of time. The schedule #
of messages is about 5000. The amount of time is a few seconds. If
even 80% of your messages received around from these your bandwidth is
so low you should not care. We are likely talking < 50 messages/second
total.