For the first internal meetup of this year we decided to have a look at gRPC (https://grpc.io/). From their website: “gRPC is a modern open source high performance RPC framework that can run in any environment. It can efficiently connect services in and across data centers with pluggable support for load balancing, tracing, health checking and authentication. It is also applicable in last mile of distributed computing to connect devices, mobile applications and browsers to backend services.”
We started the day off with watching an informational video about gRPC.
This gave us some nice ideas about the capabilities of gRPC. Based on this video we came up with a list of things that we wanted to investigate. These were: Versioning, Naming conventions, Alternatives for HTTP status codes, Error handling, Security, Load Balancing and last but not least, Monitoring and metrics.
Since gRPC is heavily based on Protocol Buffers we decided to watch one other video (https://www.youtube.com/watch?v=yfZB2_rT_Pc) that would get us up to speed with that. After that we felt like we wanted to get our hands dirty so we started with setting up a really simple application. We followed this (https://www.baeldung.com/grpc-introduction) tutorial to setup a client and a server application. The client would send a HelloRequest to the server and the server would respond with a simple greeting.
We used these applications as the basis of our research for the other topics. After some trial and error we managed to add proper error handling and a security layer. The results of this can be found here: https://github.com/sourcelabs-nl/grpc
After a fun day of learning and hacking we had different opinions in the team on gRPC. Some of us liked the potential that it has for replacing REST in ‘chatty’ services. Others were less charmed by gRPC since sometimes it seemed a little bit complex. But all in all I think that everyone learned something new and we would really like to see how this can be implemented in a production system.
After all of this we ended the day with a nice Borrelbox that contained all kind of different snacks and beverages!