Book Image

gRPC Go for Professionals

By : Clément Jean
Book Image

gRPC Go for Professionals

By: Clément Jean

Overview of this book

In recent years, the popularity of microservice architecture has surged, bringing forth a new set of requirements. Among these, efficient communication between the different services takes center stage, and that's where gRPC shines. This book will take you through creating gRPC servers and clients in an efficient, secure, and scalable way. However, communication is just one aspect of microservices, so this book goes beyond that to show you how to deploy your application on Kubernetes and configure other tools that are needed for making your application more resilient. With these tools at your disposal, you’ll be ready to get started with using gRPC in a microservice architecture. In gRPC Go for Professionals, you'll explore core concepts such as message transmission and the role of Protobuf in serialization and deserialization. Through a step-by-step implementation of a TODO list API, you’ll see the different features of gRPC in action. You’ll then learn different approaches for testing your services and debugging your API endpoints. Finally, you’ll get to grips with deploying the application services via Docker images and Kubernetes.
Table of Contents (13 chapters)

A Unary API

Important note

In terms of the underlying protocol, as we mentioned in Chapter 1, Networking Primer, the Unary API uses Send Header followed by Send Message and Half-Close from the client side, and Send Message plus Send Trailer from the server side. If you need a refresher on these operations, I recommend you quickly check the RPC operations section in Chapter 1 of this book. This will help get a sense of what is going on when you are calling this API endpoint.

The easiest and most familiar API endpoint that you can write is a unary endpoint. These roughly translate to GET, POST, and other HTTP verbs that you probably worked with in REST APIs. You send a request and you get a response. Generally, these endpoints will be the ones that you use the most often to represent the treatment of one resource. For example, if you write a login method, you just need to send LoginRequest and receive LoginResponse.

For this section, we are going to write an RPC endpoint called...