Calling other web resources
As we have seen in the previous chapters, synchronous interactions between microservices can be done via HTTP APIs using JSON payloads. This is by far the pattern most often used, because both HTTP and JSON are common standards. If your web service implements an HTTP API that accepts JSON, any developer using any programming language will be able to use it. Most of these interfaces are also RESTful, meaning that they follow the Representational State Transfer (REST) architecture principles of being stateless—with each interaction containing all the information needed instead of relying on previous exchanges—as well as cacheable and having a well-defined interface.
Following a RESTful scheme is not a requirement, however, and some projects implement Remote Procedure Call (RPC) APIs, which focus on the action being performed and abstract away the network requests from the code that handles the messages. In REST, the focus is on the resource...