one persistent subscriptions on multiple stream


At my current project we create a stream per Aggregate.

We define an unique stream as followed => Aggregate-guid (e.g. Aggregate-A6C2AEEC-C787-44EB-85DC-784AE9899BB9)

Is it possible to create a persistent subscription where you can listen to all streams related to those aggragtes?

like Aggragate-*


if you run the system category projection it will produce a stream of all events in those streams (ce-Aggregate) which you can have a persistent subscription on.

Hey James,

Worked like a charm :slight_smile: thx :slight_smile:

I’m looking to do exactly the same thing. But, I’m a little newer to event store. When you say “run the system category projection”, what do you mean? Do I need to create a new projection to produce this? Or, is this something I can already attach to and run from the .NET API?

Its one of the system projections you can turn on in the UI

Hi Sean,

We created a config file where we have added these properties


I start the server with the command line below. So, I’m guessing I’m covered with the configuration part.

EventStore.ClusterNode.exe --db ./db --log ./logs --run-projections=all --start-standard-projections=true

So, I’m guessing “$stream_by_category” or “$by_category” is going to produce new streams with what I need when I add streams for my aggregate…and I would just need to call “CreatePersistentSubscriptionAsync” and “ConnectToPersistentSubscription” from the .NET API to read the streams.

So, I run code to add a few aggregates with a stream name of “CheckingAccount|{id}”. They each have an “AccountCreated” and a “CreditApplied” event when I write to their streams. Under, “Recently Changed Streams” in the “Stream Browser”, I see two streams show up for “$et-AccountCreated” and “$et-CreditApplied”. They each just have the single type of event. I’m looking for a stream that has all the events for all the CheckingAccount aggregates. I see one called “$streams” that has all my streams. But, the data only seems to include the “AccountCreated” events. And I’m guessing it has all streams and not just streams for CheckingAccount.

Are there other streams I’m just not seeing that would contain just the events for CheckingAccount? Or, do I need to write a custom projection to get to what I need?

Disregard. I think my issue was that I was using a pipe and not a dash in my stream name for checking account. Once I changed the separator to a dash the $ce streams started showing up.