Бедствие от остарели кеширани данни
Актуализацията на цената не се разпространи до кеша. Клиенти купуваха артикули за $500 за $50 в продължение на 4 часа.
Какво се случи:
- Админ актуализира цена на продукт в базата данни
- TTL на кеша беше 6 часа
- Без инвалидиране на кеша при актуализация
- API сервираше кеширана (стара) цена
- 327 поръчки на грешна цена
- $47,000 загуба на приходи
Основна причина:
Админ панелът актуализираше базата данни директно. Кеш слоят нямаше идея, че нещо се е променило.
Решението:
- Write-through кеш: актуализациите минават през кеш слоя
- Event-driven инвалидиране: промените в базата задействат изчистване на кеша
- По-кратък TTL за данни чувствителни към цена (5 минути)
- Бутон за ръчно изчистване на кеша за админи
Урок: Инвалидирането на кеша е трудно, защото изисква да знаете навсякъде къде данните могат да се променят. Един пропуснат път = бедствие от остарели данни.