Bir promosyon sona erdi. Cache'in bundan haberi olmadı. Müşteriler dört saat daha $500'lık ürünleri $350'lık promosyon fiyatından almaya devam etti.

Ne oldu:

  • Admin promosyonu sonlandırdı ve veritabanında normal fiyatı geri getirdi
  • Cache TTL'i 6 saatti
  • Güncellemede cache invalidation yoktu
  • API cache'teki (promosyon) fiyatı sundu
  • Süresi dolmuş fiyattan 327 sipariş
  • Birisi fark edene kadar yaklaşık $49.000 istenmeyen indirim

Kök neden:

Admin paneli veritabanını doğrudan güncelliyordu. Cache katmanının bir şeyin değiştiğinden haberi yoktu.

Çözüm:

  • Write-through cache: güncellemeler cache katmanından geçer
  • Olay güdümlü invalidation: veritabanı değişiklikleri cache temizliğini tetikler
  • Fiyata duyarlı veri için daha kısa TTL (5 dakika)
  • Adminler için manuel cache temizleme düğmesi

Ders: Cache invalidation zordur, çünkü verinin değişebileceği her yeri bilmenizi gerektirir. Gözden kaçan tek bir yol = bayat veri felaketi. Invalidation yerindeyken bile bunun nasıl ters gittiğinin uzun versiyonu için cache invalidation kâbusumuza bakın.


← Çıkarılan Dersler'e dön

Bu tür olaylar önlenebilir. AWS Yönetilen Hizmetler ekibimiz müşteri ortamlarını yapay zekâ destekli izleme ve nöbetteki kıdemli mühendislerle 7/24 gözetir — böylece bu tür hikâyeler arşivde kalır.