Stale Price ve Delayed Feed Troubleshooting
Eski fiyat, gecikmiş feed ve cache kaynaklı hotel offer problemlerini freshness timestamp, ingestion lag ve invalidation kanıtlarıyla teşhis edin.
Stale price, kullanıcıya gösterilen offer'ın upstream kaynakta değişmiş olmasına rağmen sistemde eski state'in yaşamaya devam etmesidir. Feed gecikmesi, cache TTL, failed invalidation veya replay backlog aynı belirtiyi üretebilir.
Belirti
Provider yeni fiyat yayınlamıştır ancak metasearch eski fiyatı gösterir; availability kapanmıştır fakat offer görünmeye devam eder veya belirli property/date kombinasyonları saatler sonra güncellenir.
Olası nedenler
- source feed geç gelmiştir,
- ingestion job başarısız veya backlog'dadır,
- event sequence bozulmuştur,
- cache invalidation çalışmamıştır,
- TTL use case için uzundur,
- worker retry kuyruğunda takılmıştır,
- clock/timestamp timezone hatası vardır,
- downstream index/materialized view geç refresh olmuştur.
Hızlı triage
Aynı offer için dört timestamp'i bulun:
- provider state changed at,
- received at,
- normalized/persisted at,
- served/rendered at.
En büyük gap hangi iki adım arasındaysa önce o katmana bakın.
Kanıt
source_changed_at
source_sent_at
ingested_at
normalized_at
cache_written_at
cache_expires_at
served_atBu alanlar olmadan “cache mi feed mi?” sorusu çoğu zaman tahmine dönüşür.
Karar ağacı
Source gerçekten değişmiş mi? Hayırsa stale değildir.
Source değişmiş, event alınmış mı? Hayırsa provider/feed transport katmanını inceleyin.
Event alınmış ama DB eski mi? Ingestion/normalization problemidir.
DB güncel ama API eski mi? Cache/index problemidir.
API güncel ama UI eski mi? CDN/client cache veya rendering katmanını inceleyin.
Yanıltıcı belirtiler
Indicative price, “from” price ve intentionally cached discovery dataset'leri live price değildir. Önce product contract'ının expected freshness'ini tanımlayın.
Fix
Katmana göre replay, cache purge, retry, event ordering veya TTL değişikliği uygulayın. Sadece cache'i temizlemek root cause çözümü değildir.
Doğrulama
Controlled test offer'ında source değişikliği yapıp end-to-end propagation latency'yi ölçün.
Metrikler
p50/p95 freshness lag, stale-offer rate, queue age, ingestion failure rate, cache hit age ve unavailable-after-click izlenmelidir.
Önleme
Her fiyat kaydında observedAt/sourceUpdatedAt tutun. Freshness SLO'yu discovery ve booking-intent use case'leri için ayrı tanımlayın.
Bu problemi production’da mı yaşıyorsunuz?
Semptomu, veri akışını ve entegrasyon davranışını birlikte teknik olarak inceleyebiliriz.