Enhance the communication protocol between RelayMiners and Gateways for RelayRequest/RelayResponse exchanges while maintaining support for existing protocols.
Origin Document
Currently, the communication between the AppGateServer and the RelayMiner uses HTTP. This could be improved by adopting a more generic and performant protocol, such as pure TCP or QUIC
Goals
Investigate potential communication protocols for RelayMiner<->Gateway select the most suitable one.
Modify the RelayMiner config to support multiple communication protocols.
Implement the chosen protocol's server in the RelayMiner.
Implement the chosen protocol's client in the AppGateServer.
Deliverables
[ ] A research document evaluating different communication protocols and recommending the best option.
[ ] A single PR that includes:
Updates to the RelayMiner configuration to support multiple communication protocols.
Server implementation of the new protocol in the RelayMiner
Client implementation of the new protocol in the AppGateServer
Non-goals / Non-deliverables
The new communication protocol should complement, not replace, the existing protocol.
General deliverables
[ ] Comments: Add/update TODOs and comments alongside the source code so it is easier to follow.
[ ] Testing: Add new tests (unit and/or E2E) to the test suite.
[ ] Makefile: Add new targets to the Makefile to make the new functionality easier to use.
[ ] Documentation: Update architectural or development READMEs; use mermaid diagrams where appropriate.
Objective
Enhance the communication protocol between
RelayMiner
s andGateway
s forRelayRequest
/RelayResponse
exchanges while maintaining support for existing protocols.Origin Document
Currently, the communication between the
AppGateServer
and theRelayMiner
uses HTTP. This could be improved by adopting a more generic and performant protocol, such as pure TCP or QUICGoals
RelayMiner
<->Gateway
select the most suitable one.RelayMiner
config to support multiple communication protocols.RelayMiner
.AppGateServer
.Deliverables
RelayMiner
configuration to support multiple communication protocols.RelayMiner
AppGateServer
Non-goals / Non-deliverables
General deliverables
Creator: [@studna] Co-Owners: [@red-0ne]