Does Proteus broker preserve reactive chain


Curious to know whether Proteus broker preserves the reactive chain while bridging two clients. I mean, is the back-pressure escalated end-to-end? If so, what is the behaviour when a service (one of the clients) is shut down in an active communication? Does the other end gets notified or broker assigns new service instance transparently. The question is more in the perspective of service HA.

I did setup a Nginx based HA where client and service is communicating over a channel. In this traditional HA set up, client is getting ChannelClosed exception because of websocket’s connection oriented nature. So when that exact server is terminated where client is connecting to, HA setup is not worthy.

How does Proteus broker address this scenario?



Hi Sumanta,

Yes - because it uses RSocket it will propagate Reactive Streams style basic pressure from the producer to consumer, between hops without loss.

Netifi’s system uses the broker and client to create virtual point-to-point connections between a client and service. If the physical network connection is dropped the underlying virtual connection remains intact and transparently reconnects to another broker.

The JavaScript client current only has one connection right now, but it will automatically re-connect if the connection is dropped.

The Java client uses multiple physical connections. Each virtual connection can transport over multiple physical connections. If a physical connection drops it can still route traffic through other brokers. This happens automatically.

Netifi Brokers form a mesh of connections between the brokers in a cluster. They will automatically re-connect to each other when connections are broken. In the case of the Java client because it connects to multiple brokers, there are multiple routes to the same destination. Load balancing is used to determine the best route.

RSocket has resumption to deal with connection flapping. Resumption buffers data from streams until a connection is re-established. Unfortunately, the Netifi Broker does not yet have support for resumption yet. We are working on adding resumption support to the Netifi Broker which make physical connection interruptions transparent.

Let me know if you any more questions.


1 Like