Travel Supplier Adapter Pattern

Hotel ve flight supplier entegrasyonlarını provider-specific DTO'lardan ayıran adapter contract, normalization, error ve versioning tasarımını kurun.

Editoryal bilgi
Advertisement

Supplier adapter pattern'ın amacı her provider farkını core domain'e yaymak değil, provider contract'ını kontrollü bir boundary içinde tutmaktır.

Production senaryosu

Bir sistem Expedia, Booking connectivity, direct hotel API ve başka bir wholesaler ile çalışıyor. Her biri farklı auth, request DTO, error code ve pricing semantics kullanıyor.

Önerilen boundary

text
Core Search Service
   -> ISupplierAdapter
      -> Provider Request Mapper
      -> HTTP/API Client
      -> Provider Response Mapper
      -> Error Translator
      -> Capability Metadata

Adapter contract

Örnek sorumluluklar:

  • Supports(context)
  • Search(context)
  • Reprice(offerRef)
  • Book(request) — varsa
  • Cancel(reference) — varsa
  • Health()

Adapter generic bir “her şeyi yapan service” olmamalıdır.

Data model

Core domain:

  • SearchContext
  • NormalizedOffer
  • SupplierReference
  • Money
  • CancellationPolicy
  • AvailabilityState

Provider DTO'ları adapter dışında kullanılmamalıdır.

Trade-off

Çok soyut adapter interface provider capability farklarını saklayabilir. Çok provider-specific interface ise core katmanı kirletir.

Çözüm: küçük ortak contract + capability metadata + gerektiğinde optional capability interface.

Error handling

Provider error code'larını tek “500”e çevirmeyin. En az şu sınıflar ayrılmalı:

  • auth
  • rate limit
  • timeout
  • invalid request
  • no availability
  • upstream unavailable
  • retryable technical failure
  • non-retryable business failure

Versioning

Provider API version değiştiğinde core servisin değil adapter implementation'ın değişmesi hedeflenmelidir. Old/new version paralel çalıştırılabiliyorsa shadow traffic ile karşılaştırın.

Failure modes

  • source ID kaybı,
  • provider-specific policy'nin normalize edilirken silinmesi,
  • yanlış retry,
  • adapter içinde business ranking logic,
  • one-off hack'lerin core modele sızması.

Observability

Her adapter için latency, success, retry, normalized-offer count, mapping failures ve raw-to-normalized validation error izleyin.

Ne zaman kullanmamalı?

Tek provider'lı küçük bir prototipte tam adapter framework over-engineering olabilir. Ancak ikinci provider geldiği anda explicit boundary'nin değeri hızla artar.

Production checklist

  • provider DTO isolation
  • explicit capabilities
  • error taxonomy
  • raw/source reference preservation
  • provider-specific timeout/retry
  • contract tests
  • version migration plan
  • per-adapter metrics
Teknik danışmanlık

Mimarinizi birlikte review edelim.

Travel distribution ve metasearch mimarinizi ölçeklenebilirlik, hata senaryoları ve operasyon açısından değerlendirebiliriz.

Projenizi konuşalım →

İlgili içerikler

architecture

Multi-Supplier Hotel Search Architecture

Birden fazla hotel supplier'ını tek arama akışında birleştiren fan-out, normalization, deduplication, timeout ve ranking mimarisini tasarlayın.

hotelarchitecturesupplier
İncele →
architecture

Agentic Travel Reference Architecture

AI agent → search → offer → reprice → confirmation → payment → booking → servicing akışını travel-specific authorization, idempotency ve audit sınırlarıyla tasarlayın.

agentic-travelai-agentbooking
İncele →
comparison

Pull vs Changed Pricing vs ARI: Google Hotels Fiyat Teslim Modelleri

Google Hotels Pull, Changed Pricing ve ARI modellerini freshness, infrastructure, change detection ve ölçek kriterleriyle karşılaştırın.

google-hotelspullchanged-pricing
İncele →
integration

Sabre Travel APIs Entegrasyon Rehberi

developer.sabre.com

GDS shopping, provider reference, booking ve post-booking boundary'lerini açık biçimde ayıran production Sabre entegrasyon mimarisi.

sabregdsflight-api
İncele →
architecture

Push vs Pull vs Hybrid: Travel Distribution Veri Akışı

Push, pull ve hybrid distribution modellerini freshness, latency, rate limit, cache, reconciliation ve operasyonel ownership açısından karşılaştırın.

pushpullhybrid
İ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 →