golang製のgraphQLサーバでN+1問題が発生する際の対処法としてDataLoaderの導入を検討しました。
DataLoaderは、データアクセス層が効率的にデータ取得を行うための「バッチ処理機能」と「キャッシュ機能」を抽象化したライブラリ。
要はまとめてとってくることでN+1が発生するgraphQLサーバの問題を解消しようという試み。
graphQLの問題以外にも使えます。
https://github.com/vektah/dataloaden
go run github.com/vektah/dataloaden UserLoader string *github.com/dataloaden/example.Userhttps://github.com/graph-gophers/dataloader
実装さえ確定できてしまえばコマンドである程度生成できるdataloadenのほうが良さそうな感触です。