If you worked to convert monolithic software application to micro-service architecture, you must have felt that it is like breaking down processes and labelling as a service. Now many obvious becomes non-obvious for you in this work. Now you can't using IPC the way you did earlier. If you loved using RPC call, you are in fix. Moreover, . If you faced issue anytime that firewall drops the packet, you must be willing to avoid any firewall specific trouble. You wish to find less friction based migration. In fact, you may want following.
RPC based communication which works on internet
Avoid any firewall specific trouble
Moreover, you will love to have following additional stuffs
For writing micro-services and chit-chat among them, you will wish freedom to use programming language of your own choice
Chit-chat should not be performance bottleneck.
This article helps in this regard.
In a monolithic application, function calls are used to communicate between different functions to a single process. With microservices, these functions are broken into different processes and they need an effective way to communicate with each other. These processes communicate over the network. Google then facilitates the process of communicating effectively over the network internally as an effective way to handle Remote Procedure Calls, open-sourced as gRPC.
gRPC can be summarized as protocol buffers running over HTTP/2 with multiple programming language support.
Lets revisit questions
RPC based communication which works on internet
gRPC protocol buffer is designed for the same
Avoid any firewall specific trouble
HTTP standard port use helps in this regard
For writing micro-services and chit-chat among them, you will wish freedom to use programming language of your own choice
Multiple language support helps in this regard
Chit-chat should not be performance bottleneck.
HTTP/2 helps in this regard
The difference between REST and RPC is really quite simple — REST exposes data as resources to be acted upon, whereas RPC exposes operations as a method for acting upon data.
https://nordicapis.com/exploring-the-grpc-framework-for-building-microservices/
https://www.weave.works/blog/scalable-microservices-grpc-kubernetes-docker/