Debugging
No matter how well we unit test our services, we are humans and humans make mistakes. At some point, we are going to need to debug a service. In this section, we are going to see how to approach debugging. We are first going to enable server reflection, which will let us call our service simply from the command line. After that, we will use Wireshark to inspect data on the wire. Finally, because the error might not always come directly from our code, we will see how we can take a look at the gRPC logs.
Server reflection
Server reflection is an interesting feature when it comes to exposing the API to external clients. This is because it lets the server describe itself. In other words, the server knows all the services registered and the message definition. If a client asks for more information, the server, through reflection, can list all the services, messages, and so on. With that, the client does not even need to have a copy of the proto file. Now, this is not only...