マイクロサービス間通信方式の選定事例
はじめにgRPCPros(メリット)Cons(デメリット)参考GraphQLProsConsRESTAPIProsConsメッセージングサービスProsCons参考それぞれのメリットデメリットを整理マイクロサービスで採用する通信方式おわりに

こんにちは、ALTURA X株式会社でLIFELOGおよびCHECKUPのPDMを努めている山下です。
今回は弊社で採用したマイクロサービス間の通信方式と選定について記事を作成しました。
それぞれのメリットデメリットを整理
ここまでは各方式のメリットデメリットを列挙してきたので表にまとめ直します。
gRPC | GraphQL | REST API | メッセージングサービス | |
---|---|---|---|---|
型定義 | Yes | Yes | No | No(不可能ではない) |
処理速度 | High | Low | Middle | Low |
通信速度 | High | Middle | Middle | Low |
設計複雑度 | Middle | Hight | Low | Middle |
運用難易度 | Low | Low | Low | High |
実装難易度 | Middle | High | Low | Middle |
学習コスト | High | High | Low | Middle |
その他特徴 | シリアライズ化されたデータのデバッグが困難 | サーバ側のエラー応答の仕組みが独特であり、クライアント側の作り込みが複雑になる。また、GraphQL特有の脆弱性が存在するため対策が必要となる。 | GraphQLに比べてエンドポイント数が増えるため、フロントの構成によってはクエリを複数回送信する必要がある | マイクロサービスごとに冗長化しており、それぞれが独立して動く場合にメリットが大きくなる。 AWSがマネージドサービスを提供している。 |