


There is wide support from browsers and tools for testing, inspection, and debugging. High-quality HTTP implementations are available in almost every language. HTTP is supported in nearly every framework and language, and has support for many content types.Ĭommunication takes places over a scalable web Infrastructure built on top of HTTP. It is an easy-to-understand text protocol. The communication architecture for a purely REST-based application will is depicted in Image 2 below: REST is a synchronous, stateless protocol, and information is exchanged among services using mostly text-based message formats like JSON, XML, or ODATA. In a REST based design, business entities and functions are considered resources, which are accessed using Uniform Resource Identifiers or URIs, and acted on by standard HTTP actions like GET, POST, PUT, PATCH, and DELETE. REST stands for REpresentational State Transfer. REST over HTTP, HTTP/1.1 specifically, is the most widely used architectural style used today for communications between services, externally or internally. In this post, EQengineered compares two of those frameworks-REST over HTTP/1.1 and gRPC over HTTP/2-and provides recommendations for choosing one over the other. The communications among the services may be implemented any number of ways: REST, gRPC, SOAP, WebSocket, or a messaging framework. A typical microservices application has a communications architecture as shown in Image 1. In Microservices Communication Frameworks Part 1, EQengineered provided an overview of several communication frameworks commonly used in a microservices architecture.
