何が起きたか
Vercelは10月30日、データキャッシュをRuntime Cacheへ一本化すると発表した。これまでNext.jsのfetchキャッシュとunstable_cacheはData Cache、getCacheと「use cache: remote」はRuntime Cacheを使っていた。4つのAPIは同じ保存枠と利用状況の画面に載る。fetchキャッシュとunstable_cacheのコードは変えなくてよい。
Proではプロジェクトと環境ごとに保存枠が付き、従来のData Cacheのチーム全体の枠の8倍になる。Enterpriseは従来のData Cache容量の10倍だ。これまで課金されていなかったData Cacheの読み書きは、Runtime Cacheの料金に従う。新規チームは最初からRuntime Cacheを使い、既存チームには移行と課金の案内が事前に届く。
なぜ今重要か
Runtime Cacheはリージョンごとに独立したキャッシュで、ヒットはそのリージョンへの1往復で済む。別リージョンにコピーがあっても見に行かない。タグの無効化は、受け取ったリージョンをすぐ更新し、他リージョンへは通常数百ミリ秒で伝わる。記事は、8月に全リージョンへ入れたサーキットブレーカにより、最大リージョンのバースト時のp99読み取り遅延が同程度の流量で約5分の1になった、とも書いている。
エンジニアが取ること
移行前にキャッシュの読み書き量を見る。新たに課金対象になるのは、これまで無償だったData Cacheの読み書きだ。最適化ガイドで不要な読み書きを減らしてから移行する。タグはカタログ全体のように粗い単位にすると、多数のエントリを個別に消さずに無効化できる。ミス時の再取得はアプリ側のままで、リージョンをまたいだ自動複製は期待できない。