Skip to content
Berktug Berke Ates
Berktug Berke Ates

ソフトウェアエンジニア

ブログ

プロダクト向けAPIのキャッシュ戦略

· 8分で読める

キャッシュはまず正しさの決定であり、性能最適化はその次だ。

鮮度契約に名を付ける

Redis、CDN規則、HTTPヘッダーを選ぶ前に、応答がどれだけ古くてよいか、間違ったときに何が起きるかを決めろ。プロフィールページ、在庫数、価格、権限は遅延耐性が異なる。単一のグローバルTTLは通常プロダクトミスだ。

クライアントが頼れるエンジニアリング言語で契約を書け:絶対期限、イベント駆動無効化、または明示的再検証。曖昧な鮮度は、互いに争う重複キャッシュ層を生む。

観客のいるところにキャッシュする

公開コンテンツはエッジキャッシュの恩恵を受ける。ユーザーごとのダッシュボードは、しばしば身元とテナントでキー付けしたアプリレベルキャッシュが要る。高価な集計は、短命なキーバリューではなくマテリアライズが必要な場合がある。

未認可応答や秘密を埋め込む応答をキャッシュするな。キャッシュキーは意味を変える全次元——ロケール、プラン、機能フラグ、表現バージョン——を含めなければならない。

  • 期限切れ時のサンダリングハードから守る
  • 冪等な再計算経路を好む
  • ヒット率と誤データインシデントを一緒に観測する
  • 意味のあるドメインイベントで無効化する

無効化が難しい部分だ

時間ベースの期限は単純で、協調データにはしばしば間違っている。イベントベース無効化は精密で、プロデューサーの抜けを起こしやすい。多くのシステムは、重要エンティティに適度なTTLと書き込み経路での明示パージを組み合わせる。

削除と更新フローがキャッシュに必要な信号を出すよう設計しろ。書き手が読み手のキャッシュを知らなければ、古いデータは繰り返しのインシデントテーマになる。

ユーザーに見える成果を測る

ヒット率が高くても、古い情報へのサポートチケットが増えるなら勝ちではない。レイテンシ百分位、オリジン負荷、正しさの苦情を一緒に追跡しろ。キャッシュ戦略は、プロダクトを速く、かつ信頼できるように感じさせねばならない。

最高のキャッシュは見えない:ユーザーはタイムリーな答えを得、オリジンは落ち着き、エンジニアはデータがいつ遅れてよいかを正確に説明できる。


2025年6月18日、Berktug Berke Ates が公開。