GraphQL vs gRPC
https://1.bp.blogspot.com/-2-YT13MsEfA/Wn1V-pXYeXI/AAAAAAABKGw/GBUrwzqztF0GRFPvs8v58Bb-hIuVnlHzQCLcBGAs/s450/kaidan_suwaru_hanasu_school.png
実はそれぞれの技術は共通する要素もあるが基本的に対立する関係にない。
実現手法は異なるが両者に共通するのが以下の要素。
スキーマがベースにあり、APIの実装やクライアントのコード生成が行える
型付けが行われ、リクエストの入力値検証やレスポンス型の提供が行われる
C++ Java Go TypeScript Python などなどの多言語に対応可能
大きな違いは下記の通り。
GraphQL
データの読み書きをより「効率的」に行うための仕組み
速度というよりは、必要なデータを必要なだけ過不足なくやり取りすることに重きをおく
インターフェースを満たす限りデータの元は何でも良い
RESTとは異なる専用のキャッシュ機構が定義されている
gRPC
データのやり取りをより「高速」に行うための仕組み
HTTP/2 を活用した双方向性通信対応
ロードバランシングやヘルスチェックなどの機能を持つ
データはシリアライズされて通信されるので非常に軽量
詳細はそれぞれの記事に託す。