call methods on a server application on a different machine. • By default gRPC uses protocol buffers, Google’s mature open source mechanism for serializing structured data.
• Supports many language. • Faster than REST ( using HTTP/2 and Protocol Buffers). • type-safety • Do no have to worry about RESTful API Designing. (URL, HTTP method, status code,,,)
( SSL/TLS, Token-based authentication with Google) • But I think this is not for application level authentication. (this is a gRPC connection or channel authentication.) • We can use Metadata for application level authentication.
use gRPC directly on browser. ※ grpc-web provides client and proxy server implementation for running gRPC on browser (gRPC-Web protocol is a cutting-edge spec that enables invoking gRPC services from modern browsers.). • Also, we have to support internal legacy services using REST. • We can use grpc-gateway for REST Client.
• grpc-gateway implemented by Golang. But we can use another language for gRPC Server ! (e.q. Spring Boot) https://github.com/grpc-ecosystem/grpc-gateway