Due to non-streamed Prometheus remote read that sends series with samples it is highly inefficient with sidecar. This is because sidecar has to buffer whole protobuf and then stream it out.
On recent Prometheus dev summit (May 2019), we finally agreed on shape of streamed, chunked remote read API. I plan to contribute streamed chunked remote read API to Prometheus, and then make sidecar using it.
All info & design available here: prometheus/prometheus#4517