gRPCのメリット パフォーマンス、ネットワークリソースの効率的利用 双方向通信 クライアントの実装が言語ごとに自動生成できる スキーマが定まるので型のエラーが起きにくい コンパイル時のエラーないし静的解析で検知しやすい 定義ファイルの内容がそのままAPIの定義となる 実装とAPIドキュメントが剥離しない JSON Schema / Open API / Swagger etc. からの解放! Nextat Inc. 20
https://github.com/spiral/php‒grpc RoadRunner (Golang製のPHPアプリケーションサーバ) を利用 前面のGoサーバがgRPCのリクエストを受け、PHPのworkerに振る 開発元は Spiral Scout 開発の経緯: PHP was never meant to die 最新のプレゼン資料(ロシア語): RoadRunner Nextat Inc. 39
PHPアプリケーションサーバの新潮流 Swoole、PHP PM、RoadRunner etc. gRPCのためだけに作られたわけではない 非同期・並行処理やハイパフォーマンスのため アプリケーションサーバの柔軟性のため よりPHPに近いところもしくはPHP自体でサーバを制御したい alt PHP‒FPM Nextat Inc. 50
alt PHP‒FPMによるトレードオフの反転 PHPアプリケーションの初期化処理を前倒しできるものが多い サーバorワーカーの立ち上げ時に初期化 リクエストごとの重複処理がなくなる Appサーバ起動時の初期化は他言語では普通にやっていること キャッシュしたらリクエストをまたいで状態が残るのは同じでしょ? Nextat Inc. 53