In our next use case it would be very helpful to be able to send data from one node to a dedicated other cluster member.
We could implement a redundant communication between the cluster members. But to my experience over the last 25 years of development in network and cluster applications it's always a nightmare to have redundant communication between the same component. As this would require additional listen-sockets and tcp transport this will get a nightmare ion regards of troubleshooting. E.g. the normal cluster communication is working, but the forwarding is blocked by a firewall. Or the other way round.
So our design proposal would be to extend the uv_tcp_transport by an additional custom request with a buffer data. And the application would need to register a callback function to receive the incoming messages. And we would need an additional function to send a custom request. So the data would be moved through the transport layer, but never reach the raft code itself.
This would allow our application to send data to other nodes without the need to add a redundant transport layer (and get the potential problems described above).
We have already started implementing a feasibility study on our fork.
Any comments, idea or guidance welcome.
In our next use case it would be very helpful to be able to send data from one node to a dedicated other cluster member.
We could implement a redundant communication between the cluster members. But to my experience over the last 25 years of development in network and cluster applications it's always a nightmare to have redundant communication between the same component. As this would require additional listen-sockets and tcp transport this will get a nightmare ion regards of troubleshooting. E.g. the normal cluster communication is working, but the forwarding is blocked by a firewall. Or the other way round.
So our design proposal would be to extend the uv_tcp_transport by an additional custom request with a buffer data. And the application would need to register a callback function to receive the incoming messages. And we would need an additional function to send a custom request. So the data would be moved through the transport layer, but never reach the raft code itself.
This would allow our application to send data to other nodes without the need to add a redundant transport layer (and get the potential problems described above).
We have already started implementing a feasibility study on our fork.
Any comments, idea or guidance welcome.