devx: Adopt streaming compatible RPC framework
Created by: tsenart
Our inter-service communication protocols are not standardized. We mostly use bare JSON over HTTP, but also Gob over HTTP (Zoekt) and SSE for streaming searches in Zoekt and Searcher.
Standardizing on an RPC framework like GRPC which supports streaming would have some benefits:
- Requires much less manual work to add / remove / update service endpoints in a backwards compatible manner.
- Protobuf encoding is way more performant than JSON, on-par with Gob.
- Less code duplication of API types across service boundaries.