Using Apache Camel/Smallrye/reactive streams - how can I connect a "publisher" to a "subscriber" across JVMs?

The problem you have stated in your post is a fairly common use case with some well-defined patterns for solving the problem, which in this case would reasonably involve setting up some sort of asynchronous messaging middleware such as Apache ActiveMQ, RabbitMQ, Apache Kafka, etc. Doing so gives you a perfect way to decouple your Camel contexts as mentioned in the article Why Use Multiple Camel Contexts? This concept is further explained in the Apache Camel documentation for the Message Channel EIP (EIP = Enterprise Integration Pattern).

I see in your post above that you appear to be trying to use Camel SEDA. Its documentation page states:

Note that queues are only visible within a single CamelContext. If you want to communicate across CamelContext instances (for example, communicating between Web applications), see the VM component.

This component does not implement any kind of persistence or recovery, if the VM terminates while messages are yet to be processed. If you need persistence, reliability or distributed SEDA, try using either JMS or ActiveMQ.

The Camel VM component would not work for you here either since your multiple Camel contexts are distributed across different servers. The VM component can run between multiple Camel contexts, but they must all be running within the same JVM in order to inter-communicate.

For these reasons, I don't see any way around using some sort of messaging middleware in this case.

Since you mentioned streaming, something like Apache Kafka may be a good choice. I've not worked with this before and couldn't comment much further on it, but I found an article where a fella talks about it (see Reactive Streams for Apache Kafka). Camel has a Kafka Component that could be used to wire everything together.