singleflight とは gin とは Middleware Context 2つの実装例 1. 同期待ち方式 2. 非同期待ち方式 まとめ こんにちは。SRE 兼 テックブログ編集長の izzii です。毎年お盆休みに連泊で登山するのですが今年は台風の影響で行けませんでした。悲しい! さて、本記事ではパフォーマンス最適化の文脈で登場することの多い singleflight と、ウェブフレームワーク gin を組み合わせた実装例を紹介します。要素技術の概要とモチベーションに触れつつ、試行錯誤についてもお話しします。実装に関しては結局妥協が必要であり正解の形がないので GitHub で公開という形ではなく、ブログを通して自分の考えた2つの実装を紹介することにしました。この記事は Go に関する基礎知識を必要とします。 singleflight とは 複数のスレッド(go routine