GitHub が GraphQL をサポートしたというニュースに驚き、久しぶりに資料を眺めている。 以前みた時は、クライアント側は嬉しいけれどサーバ側を書くのが大変そうな印象だった。GraphQL サーバのフレームワークたちは、フレームワーク側がクエリを型単位のリクエストに分解する。フレームワークを使う側はデータを取得する "resolver" 一式を個々の型に実装する。 バックエンドが microservices や nosql になってしまっている大規模サービスなら悪くないデザインだけど、RDB から一撃で色々ひっこぬきたい人たちには嬉しくなさそうに見える。実質上 ORM の one-to-many association で lazy evaluation をするみたいになってしまい、性能上の問題もありそうだし。(なおこの問題を N+1 problem と呼ぶことを今更知った。) A