Hi Craig,<p>I tried using gRPC with Go before having to abandon the project for reasons outside my control. Looking forward to using it once again and this time take it to production. The only trouble I had was with the documentation which was scarce.<p>Anyway, here are some comments on how to improve things with gRPC:<p>1.
A dedicated mini-site for each supported language. This <a href="http:&#x2F;&#x2F;www.grpc.io&#x2F;docs&#x2F;guides&#x2F;auth.html" rel="nofollow">http:&#x2F;&#x2F;www.grpc.io&#x2F;docs&#x2F;guides&#x2F;auth.html</a> is really confusing to read due to the cocktail of languages. All examples need to be in all languages and the user should be able to choose which language to view documentation for.<p>2.
<a href="http:&#x2F;&#x2F;www.grpc.io&#x2F;docs&#x2F;guides&#x2F;error.html" rel="nofollow">http:&#x2F;&#x2F;www.grpc.io&#x2F;docs&#x2F;guides&#x2F;error.html</a> needs to be populated. Right now I use a custom error code enum w&#x2F; 0 as SUCCESS so that my downstream consumers (app developers) get a descriptive identifier. I don&#x27;t even know if there is anything else I should be aware of that gRPC offers to work with errors.<p>3.
A how-to on setting (on a client) and accessing (on a server) custom HTTP headers in gRPC. This is needed for reading the Authorization header during authentication for example. Another example is setting the From header (email of user) and using this to enable persistent sessions. I appreciate the docs covering these two specific examples as they are rather common.<p>4.
A simple guide on how to manually make an application speak the gRPC protocol - both as a client and as a server. Helpful for those who want to integrate other languages w&#x2F; gRPC enabled languages. Endgame is they can speak the wire protocol and understand the conventions just enough to quickly write a working client&#x2F;server for their app. Great if this example uses JavaScript (most people have to learn it anyway due to the browser).<p>5.
RPCs with multiple messages as arguments in input and&#x2F;or output. All examples have SomeServiceRequest and SomeServiceResponse messages for SomeService RPC giving the impression that all RPCs are single argument in the .proto file. This isn&#x27;t stated explicitly anywhere creating an ambiguity.<p>6.
Move to Discourse from Google Groups. Much easier to use and would let us organize the discussions better. Also use this to power comments on the gRPC website for each page. I can see this step alone helping the community aspect of gRPC immensely.<p>7.
Create a visual gRPC explorer. Ideally this should be a simple HTML&#x2F;CSS&#x2F;JavaScript static page running on browsers that support HTTP&#x2F;2 and making it would be a good way to start supporting gRPC on the browser (refer Point 5 above).