Актуализацията на цената не се разпространи до кеша. Клиенти купуваха артикули за $500 за $50 в продължение на 4 часа.

Какво се случи:

  • Админ актуализира цена на продукт в базата данни
  • TTL на кеша беше 6 часа
  • Без инвалидиране на кеша при актуализация
  • API сервираше кеширана (стара) цена
  • 327 поръчки на грешна цена
  • $47,000 загуба на приходи

Основна причина:

Админ панелът актуализираше базата данни директно. Кеш слоят нямаше идея, че нещо се е променило.

Решението:

  • Write-through кеш: актуализациите минават през кеш слоя
  • Event-driven инвалидиране: промените в базата задействат изчистване на кеша
  • По-кратък TTL за данни чувствителни към цена (5 минути)
  • Бутон за ръчно изчистване на кеша за админи

Урок: Инвалидирането на кеша е трудно, защото изисква да знаете навсякъде къде данните могат да се променят. Един пропуснат път = бедствие от остарели данни.


← Назад към Научени Уроци