Duplicate Booking After Retry Troubleshooting
Timeout veya retry sonrası oluşan duplicate travel booking'leri identify edin, kanıt toplayın, doğru rezervasyonu koruyup güvenli compensation uygulayın.
Editoryal bilgi
Advertisement
Duplicate booking genellikle ilk create'in UNKNOWN sonucu sonrası ikinci create'in gönderilmesiyle oluşur. Önce hangi booking'in original intent'e ait olduğunu ve hangisinin compensation gerektirdiğini belirleyin.
Symptom
- aynı traveler/itinerary için iki provider reference,
- iki confirmation email,
- duplicate payment/authorization,
- aynı bookingIntentId altında birden fazla create attempt.
Possible causes
- timeout sonrası blind retry,
- idempotency key her retry'da değişti,
- provider idempotency desteklemiyor,
- distributed lock expire oldu,
- manual ops ikinci booking açtı,
- client double-submit.
Diagnosis
- Tüm booking attempts'i zaman sırasıyla çıkarın.
- bookingIntentId/idempotency key eşleşmesini kontrol edin.
- Provider references ve confirmation timestamps karşılaştırın.
- Payment attempts'i correlate edin.
- Cancellation/refund penalty bilgilerini toplayın.
- Traveler'ın gerçekten iki booking istediğine dair evidence var mı kontrol edin.
Recovery
- Canonical olarak korunacak booking'i seçin.
- Diğer booking için provider-specific cancellation koşulunu doğrulayın.
- Payment duplication varsa void/refund compensation uygulayın.
- Local duplicate kayıtları silmeyin; audit için linked duplicate state tutun.
Prevention
- persistent idempotency store,
- unique constraint,
- UNKNOWN retry block,
- client double-submit protection,
- manual ops warning,
- provider/client reference lookup.
Observability
- duplicate provider reference,
- blocked duplicate attempts,
- same-intent multi-create,
- duplicate payment,
- cancellation cost caused by retry.
Teknik danışmanlık
Bu problemi production’da mı yaşıyorsunuz?
Semptomu, veri akışını ve entegrasyon davranışını birlikte teknik olarak inceleyebiliriz.