Webhook Replay ve Idempotency Troubleshooting

Tekrarlanan, geciken veya sırası bozulan webhook event'lerini idempotency key, dedup store ve replay kurallarıyla güvenli biçimde yönetin.

Editoryal bilgi
Advertisement

Webhook sistemlerinde duplicate delivery normal kabul edilmelidir. Problem duplicate'in gelmesi değil, aynı business event'in birden fazla kez uygulanmasıdır.

Symptom

Aynı booking iki kez update olur, refund iki kez işlenir, event sırası bozulur veya replay sonrası eski state geri gelir.

Diagnosis

  1. Provider event ID stable mı?
  2. Aynı payload kaç kez geldi?
  3. occurredAt ve receivedAt farkı ne?
  4. Event önce uygulanmış mı?
  5. State transition replay-safe mi?
  6. Eski event yeni state'i overwrite ediyor mu?

Idempotency

Provider event ID varsa dedup key olarak kullanın. Yoksa provider + entity + event type + source timestamp/payload hash kombinasyonu kullanılabilir.

Replay

Replay endpoint/job aynı event set'ini tekrar işlediğinde state değişmemelidir. Side-effect'ler idempotent veya transactional guard ile korunmalıdır.

Possible causes

Duplicate event, out-of-order event, partial transaction, dedup store expiry, provider'ın event ID reuse etmesi ve poison event.

Recovery

Aynı event'i kontrollü biçimde iki kez gönderin; business state ve side-effect yalnız bir kez değişmeli.

Observability

Duplicate delivery rate, dedup hit, out-of-order rate, replay failure, poison-event count ve event processing lag.

Prevention

Dedup retention süresini provider replay window'dan kısa tutmayın; state transition'ları explicit version/sequence ile koruyun.

Out-of-order event recovery

Yeni state'i eski event ile geri almayın. Event sequence varsa monotonik kontrol kullanın; yoksa provider event timestamp, local version ve allowed-transition kuralları birlikte değerlendirilmelidir.

Örnek: CANCELLED state'e ulaşmış booking'e daha sonra gelen eski CONFIRMED event'i uygulanmamalıdır. Event audit trail'de kalır ancak materialized state'i değiştirmez.

Validation

Aynı booking için CONFIRMED → CANCELLED → gecikmiş CONFIRMED sırasını kontrollü test edin. Son state CANCELLED kalmalı ve stale event observability'de görünmelidir.

Teknik danışmanlık

Bu problemi production’da mı yaşıyorsunuz?

Semptomu, veri akışını ve entegrasyon davranışını birlikte teknik olarak inceleyebiliriz.

Projenizi konuşalım →

İlgili içerikler

architecture

Booking Lifecycle Event Model

Travel booking state'ini create, confirm, modify, cancel, fail ve reconcile event'leriyle izleyen lifecycle modelini tasarlayın.

bookingeventlifecycle
İncele →
troubleshooting

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.

duplicate-bookingretryidempotency
İncele →
travel-ecosystem

Bonotel Exclusive Travel: B2B Hotel Distribution Profili

bonotel.com

Bonotel'i API-connected travel seller'lara curated B2B hotel distribution ve wholesale inventory sağlayan oyuncu olarak teknik biçimde inceleyin.

bonotelbedbankwholesale
İncele →
travel-ecosystem

Cendyn CRS: Central Reservations ve Distribution Profili

cendyn.com

Cendyn'in central reservation ve hotel distribution rolünü reservation service ve live hotel-feed infrastructure bağlamında teknik olarak inceleyin.

cendyncrsreservation
İncele →
reports

Türkiye Metasearch Pazarı: Public-Evidence Teknik Harita 2026

Türkiye travel metasearch ve dağıtım ekosistemini OTA, metasearch, GDS, NDC, bedbank, channel manager, CRS ve booking katmanlarıyla public evidence üzerinden haritalayın.

turkiyemetasearchtravel-distribution
İncele →
integration

Amadeus Enterprise APIs ve NDC Entegrasyon Rehberi

developers.amadeus.com

Amadeus Enterprise API Portal ve Travel Platform/NDC entegrasyonunu access, entitlement, offer/order lifecycle, servicing, quota sınırları ve observability ile tasarlayın.

amadeusenterprise-apindc
İncele →