---
title: "Stale Price ve Delayed Feed Troubleshooting"
description: "Eski fiyat, gecikmiş feed ve cache kaynaklı hotel offer problemlerini freshness timestamp, ingestion lag ve invalidation kanıtlarıyla teşhis edin."
slug: "stale-price-feed-troubleshooting"
translationKey: "troubleshooting-stale-price-feed"
locale: "tr"
type: "troubleshooting"
category: "troubleshooting"
tags: ["hotel","stale-price","feed","cache","freshness"]
publishedAt: "2026-09-26"
updatedAt: "2026-09-26"
reviewedAt: "2026-09-26"
---

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:

1. provider state changed at,
2. received at,
3. normalized/persisted at,
4. served/rendered at.

En büyük gap hangi iki adım arasındaysa önce o katmana bakın.

## Kanıt

```text
source_changed_at
source_sent_at
ingested_at
normalized_at
cache_written_at
cache_expires_at
served_at
```

Bu 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.
