Giga-Usagiのコードリーディング
リポジトリはGiga関連のリポジトリと関係性で書いた。
まずリクエストが届いたとき、CloudFrontに設定しているLambda@Edge関数によって管理画面の認証やIPアドレス制限などが実施される。これはGigaのdevhostにおける認証に書いた。メモのタイトルには devhost と入っているが基本的には同一のものが各種環境に設定されている。
にGiga-Usagiはどうやってテナントを特定しているかで書いたようにテナント(Giga用語ではメディア)を特定している。その後、Web 以下の register でルーティングが行われる。ここでおそらくGiga-Usagiのトレース計装などがミドルウェアによって実現されている。
その後、GraphQLの場合はGigaのGraphQL実装(Perl版)のような流れで処理されて、最終的にクライアントへ結果を返す。wundergraph-router は lib/Giga/GraphQL/Resolver/Query.pm に実装があった。
まだ読んでいない分部に Widget という概念などもあるようだが、これはおそらくPerlでHTMLを返している辺りの仕様なのだろう。