Travel Pricing için Cache Invalidation Patterns
Hotel ve flight fiyatlarında TTL, event invalidation, stale-while-revalidate ve live reprice sınırlarını production senaryolarıyla tasarlayın.
Travel pricing cache'inde asıl soru “kaç dakika cache?” değildir. Doğru soru hangi fiyatın hangi intent seviyesinde ne kadar stale olmasına izin verilebilir? sorusudur.
Production senaryosu
Destination discovery ekranı binlerce hotel için indicative price gösteriyor. Kullanıcı detail sayfasına geçtiğinde exact rate bekliyor; booking'e yaklaşınca live reprice gerekir.
Pattern'ler
TTL-based
Basit ve güvenilir fallback'tir. Ancak volatility değişkense tek TTL yetersizdir.
Event-driven invalidation
Supplier price/inventory change event'i geldiğinde ilgili key invalid edilir. Güçlü change-data pipeline ister.
Stale-while-revalidate
Eski veri kısa süre gösterilirken background refresh yapılır. Discovery için faydalıdır, booking-intent için riskli olabilir.
Read-through live refresh
Cache miss veya freshness threshold aşıldığında provider çağrılır.
Cache key
En azından şu context düşünülmeli:
- property/route
- dates
- occupancy
- currency
- market/residency
- room/rate class gerekiyorsa
Yanlış key stale değil, yanlış-context bug'ı üretir.
Adaptive TTL
Volatile market/date kombinasyonlarında kısa, long-tail veya uzak tarihli inventory'de daha uzun TTL uygulanabilir.
Failure modes
- invalidation event kaybı,
- stampede,
- stale overwrite,
- wrong cache key,
- provider outage sırasında cache'in topluca expire olması,
- discovery cache'in booking flow'da reuse edilmesi.
Concurrency
Single-flight/request coalescing kullanarak aynı cache miss için yüzlerce upstream call üretmeyin.
Observability
- cache hit rate,
- hit age,
- stale-serve rate,
- revalidation latency,
- invalidation lag,
- live-reprice delta,
- stampede count.
Alternatifler
Düşük hacimde kısa TTL + live reprice yeterli olabilir. Event-driven invalidation ancak source change sinyali güvenilir olduğunda değer üretir.
Production checklist
- explicit cache key
- intent-based freshness class
- adaptive TTL
- invalidation fallback
- SWR sınırı
- single-flight
- live reprice before transaction
- stale-overwrite protection
Bu problemi production’da mı yaşıyorsunuz?
Semptomu, veri akışını ve entegrasyon davranışını birlikte teknik olarak inceleyebiliriz.