1. JSON/RESTが抱えるオーバーヘッドの正体
REST APIは人間にとって可読性が高い反面、テキスト形式のJSONパース処理と文字列ヘッダーがCPUと帯域を圧迫します。数千のマイクロサービスが内部通信を行う場合、このシリアライズコストが無視できません。
2. Protocol Buffersのバイナリ圧縮効率
Protocol Buffersは厳密に型定義されたスキーマ(.proto)からコードを自動生成し、データを極小のバイナリで送受信します。ペイロードサイズはJSONの30%〜50%に圧縮されます。
syntax = "proto3";
service PaymentService {
rpc ProcessPayment (PaymentRequest) returns (PaymentResponse);
}
message PaymentRequest {
string order_id = 1;
int64 amount_yen = 2;
string currency = 3;
}
3. どちらを選ぶべきか?実務での使い分けルール
- 外部公開API・フロントエンド連携: ブラウザ親和性の高い OpenAPI/REST または GraphQL
- バックエンド内部サービス間通信: 型安全・超高速・ストリーミング対応の gRPC