Protocol Buffers
メッセージフォーマット
Googleで利用されており、2008年にOSS化
特徴
スキーマ定義用のDSL(IDL)としての側面
.protoファイル
コンパイルするとクライアント用のコードをはける
serialize形式としての側面
独自のシリアライズ形式を持っている
シリアライズ形式としてはJSONなども実際には利用可能
Pros
各言語(フロント/バック/アプリ)用のデータ構造の定義を自動生成できる
自動生成できないとミスが起きがち -> ミーティング祭り
仕様が小さく、可読性が高い
利用するありがちなシチュエーション
複数言語間でやり取りされるJSONにスキーマを与える
備考
シリアライズの形式はProtobufが備えているもの以外にJSONもいける
gRPCはインタフェースの定義(デフォルトのメッセージフォーマット)にProtobufを採用している
Protocol BuffersはRPCではなくRESTで使うこともできる
一般的にはProtobuf + gRPCの例が多そうだけどProtobuf自体の制約ではない
公式
Protocol Buffers  |  Google Developers
参考
今さらProtocol Buffersと、手に馴染む道具の話 - Qiita
Protocol Buffers周辺の考え方と生態系についての議論 - Togetter
実例で見るProtobuf
Protocol Buffers is 何
疑問
JSON Schemaとは何が違うの?
JSON Schemaは再帰的な構造は表現できない