Earlier quoted context omitted.
Also take a look at the network "protocol": JSON over HTTP longpolling, requiring usually a separate socket for each batch of messages sent or received (unless HTTP/2 is available, then it’s a bit less expensive, still has a massive overhead). Matrix has so much potential – someday, when it’s built on technologically more ideal foundations. Python2.7 you’ll barely notice, but the network overhead of the Matrix protoc…
The spec only states the use of JSON over HTTP as a baseline so anyone is welcome to implement more efficient transports like CBOR/COAP or MQTT or whatever :) But yes the goal of the reference implementations was to showcase the simplest transport: one PUT to send and one GET to retrieve it. Meanwhile we’re working on improving the performance of the servers with some rather nice breakthroughs on the horizon.
And I’m not sure PUT and GET are the simplest solution, I’d think a simple socket over which messages are transmitted in both directions would be simpler than implementing an entire HTTP stack.