Communication layer and accreditation between services
Currently, the communication between microservices has the following model of calls:
As you can see, we use RPC and PUB/SUB for the internal layer and HTTP calls for calls made in the public-facing layer. At one point in our internal layer, we make use of the HTTP protocol. There is nothing wrong with this, but RPC for calls between microservices is the most efficient, especially if we use some kind of data wrapper, such as binary protocol or some other mechanism for packet reduction.
Let's modify this call to an RPC. However, it will be different from the RPCs we currently have, since we will pass a binary protocol package. For this, we will use the gRPC, creating a server in UsersService
and a client in RecommendationService
.
This HTTP call that we want to delete is in RecommendationService
, in the receiver method of the Recommendation
class, inside the service.py
file, as you can see here:
... def receiver(self, data): ...