Implementing gateways and clients
In this section, we are going to illustrate how to plug the generated client and server gRPC code into our microservices. This will help us to switch communication between them from JSON-serialized HTTP to Protobuf gRPC calls.
Metadata service
In Chapter 2 Scaffolding a Go Microservice, we created our internal model structures, such as metadata, while in Chapter 4 Serialization, we created their Protobuf counterparts. Then, we generated the code for our Protobuf definitions. As a result, we have two versions of our model structures – internal ones, as defined in metadata/pkg/model
, and the generated ones, which are located in the gen
package.
You might think that having two similar structures is now redundant. While there is certainly some level of redundancy in having such duplicate definitions, practically, these structures serve different purposes:
- Internal model: The structures that you create manually for your application...