A Question about the %all stream and the java clients


I’m in the process of integrating GES with ElasticSearch.

If I read from the %all stream, can I determine what stream an event has been written to?

Also, do any of the java clients support subscriptions?

Any help appreciated.

Kind regards


Yes the jvm client supports subscriptions.

When reading an event the stream name is on the event


Are these catchup or persistent?

That was for catchup I don't think persistent subscriptions have been
merged into the master of jvm client (they are on a branch now).
Persistent subscriptions as of now don't support $all either way just
streams. We left off $all on persistent as its only an optimization
and didn't have any immediate need for it (plus is a bunch of work!)

Hi Greg,

Do you have any eta as to when persistent will be merged in to the master of the jvm client?
Also are there plans to do all, I can get round it with specific persistent subscriptions per stream if needed.
How easy would this be to do, is it something somebody could contribute? If yes, where should I start looking at the source?

The reason I say its a performance enhancement is that you could just
as easily write a projection to make your own $all (of course there is
a perf hit here).

I think the code is pretty involved. Internally (and through apis)
there are completely different APIs for reading from all as opposed to
from a stream. Also the checkpoint format is different (long/long
position) vs int on stream. It changes quite a bit. We have always
said we would eventually do it but ...

Also in 3.4.0 there is a http interface for competing consumers.