Booking Timeout / Outcome Unknown Troubleshooting
Travel booking timeout'larında duplicate retry yapmadan evidence, lookup, reconciliation ve recovery adımlarıyla UNKNOWN outcome teşhis edin.
Editoryal bilgi
Advertisement
Booking create request'inin timeout olması rezervasyonun başarısız olduğunu kanıtlamaz. Öncelik, ikinci create göndermeden provider tarafındaki gerçek outcome'u bulmaktır.
Symptom
- API timeout döner,
- local booking
UNKNOWNveyaPENDINGkalır, - provider reference yoktur veya response alınmamıştır,
- kullanıcı tekrar rezervasyon yapmaya çalışır.
Possible causes
- read timeout,
- connection reset,
- provider işlemi tamamladı fakat response kayboldu,
- provider queue/processing gecikmesi,
- local persistence response sonrası başarısız oldu,
- client timeout backend işleminden önce gerçekleşti.
Diagnosis
bookingIntentId, idempotency key ve correlation ID bulun.- Provider create request'in gerçekten gönderilip gönderilmediğini trace'ten doğrulayın.
- Provider reference/client reference ile lookup yapın.
- Webhook/event gelip gelmediğini kontrol edin.
- Payment state'i yalnız supporting evidence olarak kullanın; booking confirmation kanıtı saymayın.
- Lookup eventual consistency gösteriyorsa retry değil backoff uygulayın.
Recovery
- Booking bulunduysa local state'i CONFIRMED yapın ve provider reference'ı persist edin.
- Authoritative lookup booking olmadığını kanıtlıyorsa FAILED'a çözün.
- Evidence yetersizse UNKNOWN bırakın ve reconciliation planlayın.
- Blind create retry yapmayın.
Prevention
- UNKNOWN first-class state,
- provider lookup capability map,
- idempotency key,
- create-attempt audit trail,
- traveler-safe pending UX,
- reconciliation worker.
Observability
- UNKNOWN creation rate,
- UNKNOWN age,
- resolution source,
- time-to-confirm/time-to-fail,
- duplicate retry blocked count,
- manual escalation rate.
Teknik danışmanlık
Bu problemi production’da mı yaşıyorsunuz?
Semptomu, veri akışını ve entegrasyon davranışını birlikte teknik olarak inceleyebiliriz.