Bayat Önbellek Verisi Felaketi
Fiyat güncellemesi önbelleğe yansımadı. Müşteriler 4 saat boyunca 500 dolarlık ürünleri 50 dolara satın aldı.
Ne oldu:
- Yönetici, veritabanındaki ürün fiyatını güncelledi
- Önbellek TTL'i 6 saatti
- Güncellemede önbellek geçersizleştirme yoktu
- API, önbelleğe alınmış (eski) fiyatı sundu
- Yanlış fiyattan 327 sipariş
- 47.000$ gelir kaybı
Asıl neden:
Yönetici paneli doğrudan veritabanını güncelledi. Önbellek katmanının herhangi bir değişiklikten haberi olmadı.
Çözüm:
- Write-through cache: güncellemeler önbellek katmanından geçer
- Olay güdümlü geçersizleştirme: veritabanı değişiklikleri önbellek temizlemesini tetikler
- Fiyata duyarlı veriler için daha kısa TTL (5 dakika)
- Yöneticiler için manuel önbellek temizleme düğmesi
Ders: Önbellek geçersizleştirme zordur çünkü verinin değişebileceği her yeri bilmenizi gerektirir. Bir yolun atlanması = bayat veri felaketi.