Episode 134 - gRPC

The Backend Engineering Show with Hussein Nasser

Episode | Podcast

Date: Sat, 29 Feb 2020 20:00:33 GMT

<p><strong>gRPC</strong> (<strong>gRPC</strong> <strong>Remote Procedure Calls</strong>[1]) is an <a href="https://en.m.wikipedia.org/wiki/Open-source_software">open source</a> <a href="https://en.m.wikipedia.org/wiki/Remote_procedure_call">remote procedure call</a> (RPC) system initially developed at <a href="https://en.m.wikipedia.org/wiki/Google">Google</a> in 2015[2]. It uses <a href="https://en.m.wikipedia.org/wiki/HTTP/2">HTTP/2</a> for transport, <a href="https://en.m.wikipedia.org/wiki/Protocol_Buffers">Protocol Buffers</a> as the message format.</p> <p>In this video I want to explore gRPC, go through examples, pros and cons of gRPC.</p> <p>Client/ Server communication</p> <ul> <li>SOAP</li> <li>HTTP (REST)</li> <li>WebSockets</li> </ul> <p>Client Libraries</p> <p>gRPC</p> <p>gRPC Demo</p> <ul> <li>todos</li> </ul> <p>gRPC Pros and Cons</p> <p>Pros</p> <ul> <li>Fast two/uni and request</li> <li>Unform</li> <li>One library to rule them all</li> <li>Progress feedback( long synchronous requests) drop pluggable wait...)</li> <li>cancel request</li> <li>All benefits of H2 and Protobuff</li> </ul> <p>Cons</p> <ul> <li>schema based (not everyone wants schema)</li> <li>Thick client - limited languages - Proxies still don’t understand it</li> <li>Still young</li> <li>Error handling</li> <li>No native browser support</li> <li>Timeouts, circuit breaker just like any RPC (pub/sub rules in this case)</li> </ul> <p>Can you create your own protocol?</p> <ul> <li>Spotify example with Hermes</li> </ul>