Why gRPC is the future of software architecture
<p>REST is architectural style which has been a de facto while designing large scale systems these days. REST idealogy disrupted the market around 15 years back replacing SOAP based architectures because of its high performance, lighter and flexible nature. Yes of course there are many more reason to it. But its been a long time while developers tried hard to struggle with few problems while using REST such as costly JSON objects, streaming back the response from server and lack of support for HTTP 2.</p>
<h1>Why gRPC</h1>
<p>As the world is getting more and more connected, much more data load needs to catered by our giant servers and in this, Google came up with a faster and more power efficient architectural framework for communication called gRPC.</p>
<p>As the name suggests, it is an extension of traditional remote procedure calls (RPC). gRPC is designed very thoughfully to overcome pain points of REST based architectures with following advantages</p>
<ol>
<li>gRPC is based on HTTP 2 which allows multiplexing over the network, gRPC is even superior than similar solutions like Thrift because of the above mentioned reasons</li>
<li>gRPC uses serialised protocol buffers which consume less network bandwidth than JSON while data transfers. Protocol buffer’s contract definition language (<strong>proto3</strong> as of today) is technology agnostic</li>
<li>gRPC supported bidirectional streaming of data over a single RPC call. Means server can send a stream of data back to client efficiently unlike REST’s <em>hit and get</em> nature.</li>
<li>gRPC’s implementation is time consuming as compare to REST but it is 7 times faster than REST in receiving and 10 times faster than REST in sending data.</li>
</ol>
<h1>Support for gRPC</h1>
<p>gRPC is a relatively new approach than REST. Hence, not every technology or tool currently support gRPC but most of the do. gRPC is available with following languages as of today</p>
<p><a href="https://medium.com/geekculture/why-grpc-is-the-future-of-software-architecture-baa68452a093">Read More</a></p>