CreateOrderRequest와 CreateOrderReply는 타입이 정해진 메시지(typed message)입니다. CreateOrderRequest 메시지를 보니 int64형 restaurantId 필드가 있고 태그 값은 1입니다.
gRPC는 다음과 같은 장점이 있습니다.
• 다양한 업데이트 작업이 포함된 API를 설계하기 쉽습니다.
• 특히 큰 메시지를 교환할 때 콤팩트하고 효율적인 IPC입니다.
• 양방향 스트리밍 덕분에 RPI, 메시징 두 가지 통신 방식 모두 가능합니다.
• 다양한 언어로 작성된 클라이언트/서버 간 연동이 가능합니다.
다음과 같은 단점도 있습니다.
• 자바스크립트 클라이언트가 하는 일이 REST/JSON 기반 API보다 더 많습니다.
• 구형 방화벽은 HTTP/2를 지원하지 않습니다.
gRPC는 REST를 대체할 만한 유력한 방안이지만, REST처럼 동기 통신하는 메커니즘이라서 부분 실패 문제는 풀어야 할 숙제입니다.