separate Client and Publisher interfaces
Rather than providing a client interface that supports both fetch and publishing data, requiring multiple "client" layers in the interface, it might be cleaner to just offer separate Client
and Publisher
interfaces.
I note the existing Client
interface already only offers either subscribing or publishing, but not both, so it's effectively already like this. But we should just remove the redundant extra layer as I don't think it's needed.