The ordering of the parameters in Connection#subscribe and in the service-side subscribe calls is incosistent. The names are confusing. The ordering as it appears in logging is confusing/inconsistent.
Make this better.
Everywhere a subscription is referenced, the names should indicate that events flow from left to right (sorry, RtL localities). That is, everywhere you see subscribe(a, b), it implies that events are published to a and fanned out to b.