For http REST APIs (eg bitcoind JSON-RPC) we can utilize a derived channel to process the request body from json into message objects and dispatch to any number of protocols. This would make it identical at the protocols level, apart from any semantic differences, for other interfaces, such as ElectrumX and Stratum. So I think I'm going to leave this low level http processing in the network layer and implement the messages and associated protocols in node.