Webhook vs Polling Reconciliation

Travel booking sistemlerinde webhook, polling ve reconciliation rollerini; duplicate, out-of-order ve missing-event senaryolarıyla birlikte tasarlayın.

Editoryal bilgi
Advertisement

Webhook ve polling birbirinin alternatifi değildir. Production travel sisteminde webhook hızlı evidence, polling/reconciliation ise tamlık ve recovery mekanizmasıdır.

Reference flow

Webhook and reconciliation architectureWebhook and reconciliation architecture

Mermaid source (.mmd)

Webhook neden tek başına yetmez?

Webhook:

  • kaybolabilir,
  • duplicate gelebilir,
  • out-of-order gelebilir,
  • provider retry edebilir,
  • imza doğrulaması başarısız olabilir,
  • endpoint kısa süre unavailable olabilir.

Bu yüzden "webhook gelmedi = event olmadı" kabulü güvenli değildir.

Polling neden tek başına yetmez?

Sürekli polling:

  • rate limit tüketir,
  • gereksiz trafik üretir,
  • state propagation'ı geciktirir,
  • provider maliyetini artırabilir.

Polling hedefli ve state-aware olmalıdır.

Reconciliation scheduling

Aday kayıtlar:

  • uzun süredir UNKNOWN/PENDING,
  • webhook beklenen ama gelmeyen booking,
  • payment ve booking state'i ayrışan kayıt,
  • cancellation/refund incomplete,
  • provider reference var ama local terminal state yok.

Backoff kullanın:

text
1 min -> 5 min -> 15 min -> 1 h -> manual threshold

Dedup ve ordering

Webhook ingress event'i doğrudan state update etmemeli. Önce:

  1. signature/auth verify,
  2. provider event identity çıkar,
  3. dedup,
  4. occurredAt / sequence kaydet,
  5. transition rules çalıştır.

Out-of-order event daha yeni state'i geri almamalıdır.

Source precedence

Çelişen evidence için precedence tanımlayın. Örnek:

text
authoritative status lookup
> signed provider webhook
> synchronous API response
> local inferred timeout state

Bu sıra provider'a göre değişebilir ama explicit olmalıdır.

Failure modes

  • duplicate webhook,
  • webhook replay attack,
  • stale event'in state'i geri alması,
  • polling storm,
  • reconciliation'ın aynı booking'i paralel işlemesi,
  • provider lookup eventual consistency nedeniyle geçici yanlış sonuç.

Observability

  • webhook receive rate,
  • signature failure,
  • duplicate ratio,
  • out-of-order ratio,
  • webhook-to-state latency,
  • reconciliation queue depth,
  • reconciliation resolution rate,
  • pending/unknown age buckets.

Production checklist

  • signature/auth verification,
  • idempotent event apply,
  • event store,
  • ordering/version strategy,
  • state-aware polling,
  • exponential backoff,
  • reconciliation ownership lock,
  • manual escalation threshold.
Teknik danışmanlık

Benzer bir entegrasyon mu planlıyorsunuz?

Gereksinim, feed/API tasarımı ve production yaklaşımını birlikte değerlendirebiliriz.

Projenizi konuşalım →

İlgili içerikler

troubleshooting

Cancellation Succeeded but Local State Stale

Provider cancellation başarılı olduğu halde local booking state güncellenmediğinde webhook, persistence, ordering ve reconciliation katmanlarını teşhis edin.

cancellationstale-statewebhook
İncele →
architecture

Booking Timeout ve UNKNOWN Outcome Recovery

Travel booking timeout'larında FAILED yerine UNKNOWN state kullanarak lookup, reconciliation ve safe retry kararlarını tasarlayın.

bookingtimeoutunknown
İncele →
distribution-api

Hotelbeds API Suite: Bedbank Dağıtım Profili

developer.hotelbeds.com

B2B konaklama dağıtımı için booking, content ve cache API'lerini kapsayan HBX Group Hotelbeds API Suite teknik profili.

hotelbedshbxbedbank
İncele →
distribution

OTA vs Metasearch vs Travel Marketplace: Farklar

OTA, metasearch ve travel marketplace modellerini transaction ownership, supplier relationship, monetization, handoff ve teknik architecture açısından karşılaştırın.

otametasearchtravel-marketplace
İncele →
distribution

Package Holiday vs Hotel Metasearch: Mimari Farklar

Paket tatil dağıtımı ile hotel metasearch modelini offer identity, pricing, supplier topology, booking ownership ve cancellation açısından karşılaştırın.

package-holidayhotel-metasearchtour-operator
İncele →
distribution-api

Sabre Travel APIs: GDS ve Travel Distribution Profili

developer.sabre.com

Air, lodging, car, booking ve agency workflow'larını kapsayan Sabre Travel APIs için teknik GDS ve dağıtım profili.

sabregdsflight-api
İncele →