DEV Community

Discussion on: What is the purpose of using gRPC and rabbitmq in microservices?

manigandham profile image
Mani Gandham

gRPC is a RPC (remote procedure call) framework. It lets two different applications send information to each other in a formal way, so that they can be written in any language. This is built on top of Google Protobuf which is a serialization framework to represent data itself. gRPC lets applications talk to each other with standardized methods over a http/2 tcp connection sending data encoded in protobufs.

What happens if one application is talking to another app but it goes offline? What if you want to send 1 message but have it duplicated to many other apps automatically? What if you don't know who exactly to send to? Imagine what you would have to build for that - and that's RabbitMQ is.

It's a message broker system that accepts and sends messages on a topic. All the apps talk to RabbitMQ instead and it'll handle queuing messages if the listening side is offline and will let you setup complex routing rules if you need them.