Supplier Timeout Incident Playbook
Travel search sırasında supplier timeout olaylarını containment, retry, fallback, circuit breaker ve recovery adımlarıyla yönetin.
Supplier timeout incident'ında amaç her request'i kurtarmaya çalışmak değil, toplam search deneyimini korurken upstream bağımlılığı kontrollü biçimde izole etmektir.
Trigger / belirti
Provider p95/p99 latency yükselir, timeout rate threshold'u aşar, partial-result oranı artar veya worker thread/connection pool dolmaya başlar.
Amaç ve kapsam
Bu playbook search/read path içindir. Booking/create-order gibi non-idempotent write işlemlerinde retry politikası ayrıca tasarlanmalıdır.
Gerekli kanıt
- provider adı ve endpoint,
- timeout rate,
- p50/p95/p99 latency,
- concurrency,
- connection pool usage,
- request volume,
- HTTP/network error dağılımı,
- retry count,
- provider status/incident bilgisi.
Uygulama adımları
- Blast radius belirle: tek endpoint mi, region mı, tüm provider mı?
- Timeout budget doğrula: client timeout upstream SLA'dan anlamsız uzun mu?
- Retry storm var mı kontrol et: timeout başına kaç ek request üretiliyor?
- Concurrency sınırla: bulkhead/connection pool ile diğer supplier'ları koru.
- Circuit breaker uygula: hata oranı belirli eşiği geçince kısa süre request kes.
- Fallback seç: cached/indicative result, alternate provider veya partial response.
- UI contract'ı koru: eksik provider yüzünden tüm search'ü fail etme.
- Recovery probe: circuit half-open iken küçük kontrollü trafik gönder.
Retry kararı
Retry yalnız idempotent request'te ve remaining latency budget yeterliyse yapılmalıdır. Exponential backoff + jitter kullanın; aynı anda tüm instance'ların retry yapmasına izin vermeyin.
Stop condition
Timeout rate normal baseline'a dönmüş, circuit breaker kapalı state'e geçmiş ve queue/connection pool iyileşmiş olmalıdır.
Escalation
Provider birden fazla region/endpoint'te bozuksa, SLA breach sürüyorsa veya booking-critical path etkileniyorsa supplier operasyon ekibine incident evidence ile escalate edin.
Çözüldüğünü kanıtlayan metrikler
Provider success rate, p95 latency, partial-result rate, retry amplification, circuit-open duration ve search completion rate.
Önleme
Her supplier için ayrı timeout, concurrency, circuit-breaker ve fallback policy tanımlayın. Tek global timeout değeri kullanmayın.
Bu problemi production’da mı yaşıyorsunuz?
Semptomu, veri akışını ve entegrasyon davranışını birlikte teknik olarak inceleyebiliriz.