Offer Identity ve Offer Fingerprint Tasarımı

Travel offer'larını provider, room/rate, policy, price ve context boyutlarıyla deterministik biçimde tanımlayan offer fingerprint modelini tasarlayın.

Editoryal bilgi
Advertisement

Offer fingerprint'ın amacı kullanıcıya görünen her fiyatı kalıcı bir booking ID sanmak değil, aynı ticari offer'ı aynı arama bağlamı içinde tekrar tanıyabilmek için deterministik bir kimlik üretmektir.

Production senaryosu

Aynı hotel, oda ve rate plan iki provider response'unda farklı field sırası, farklı currency precision veya farklı marketing text ile gelebilir. Aynı zamanda refundable ve non-refundable ürünler aynı room adı altında bulunabilir.

Mimari akış

text
Raw Provider Offer
 -> Normalize Search Context
 -> Normalize Property / Room / Rate Identity
 -> Normalize Commercial Terms
 -> Select Fingerprint Fields
 -> Canonical Serialize
 -> Stable Hash
 -> Persist Fingerprint + Source Reference

Fingerprint'e hangi alanlar girmeli?

Tipik alanlar:

  • canonical property ID,
  • canonical room ID veya room signature,
  • rate-plan signature,
  • meal/board basis,
  • refundability/cancellation class,
  • payment timing,
  • occupancy,
  • stay dates,
  • market/residency context gerektiğinde,
  • original currency,
  • provider/source identity.

Price amount çoğu zaman fingerprint'e doğrudan dahil edilmemelidir; aksi halde her fiyat değişimi yeni offer identity üretir.

Data model

text
OfferFingerprint
- fingerprint
- provider
- canonicalPropertyId
- roomSignature
- rateSignature
- contextHash
- sourceOfferRef
- firstSeenAt
- lastSeenAt

Fingerprint ile source offer reference aynı şey değildir. Booking/reprice için source reference korunmalıdır.

Tasarım trade-off'ları

Çok az alan kullanırsanız farklı ürünler merge olur. Çok fazla alan kullanırsanız aynı ticari ürün gereksiz yere parçalanır.

Özellikle free-text room name, dynamic promotion label ve localized description fingerprint alanı olmamalıdır.

Collision ve determinism

Canonical serialization field ordering, null handling, enum normalization ve Unicode normalization açısından deterministik olmalıdır.

Hash collision teorik olarak mümkündür; kritik sistemlerde fingerprint'in yanında canonical key payload veya component digest saklamak debug açısından faydalıdır.

Failure modes

  • refundable/non-refundable merge,
  • meal plan farkının kaybolması,
  • provider source ID'nin düşmesi,
  • fiyatı identity'ye dahil edip churn yaratma,
  • occupancy context'ini unutma,
  • localized text yüzünden unstable hash.

Cache ve lifecycle

Fingerprint stable identity sağlar ama offer freshness'i garanti etmez. Price observation ve current availability ayrı state olarak tutulmalıdır.

Observability

  • duplicate merge rate,
  • fingerprint churn,
  • collision suspicion,
  • same-fingerprint price volatility,
  • unmapped room/rate ratio,
  • booking/reprice lookup success.

Alternatifler

Provider zaten güçlü ve stable offer ID veriyorsa bunu source identity olarak kullanın; yine de cross-provider dedup için normalized fingerprint gerekebilir.

Production checklist

  • explicit field list
  • canonical serialization
  • context hash
  • source reference preservation
  • no free-text dependency
  • no raw price in identity unless business rule requires it
  • collision diagnostics
  • fingerprint versioning
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

Canonical Offer, Order ve Booking State Model

Travel sistemlerinde Offer, Order ve Booking kavramlarını ayıran canonical state modelini ve booking state machine tasarımını kurun.

offerorderbooking
İncele →
architecture

Travel Search → Offer → Reprice → Booking Reference Architecture

Travel metasearch ve booking sistemlerinde search, canonical offer, reprice, payment ve booking akışını uçtan uca reference architecture olarak tasarlayın.

travelsearchoffer
İncele →
travel-ecosystem

GIATA MultiCodes: Hotel Mapping ve Master Data Profili

giata.com

GIATA MultiCodes'un hotel identity, supplier-code mapping, duplicate prevention ve günlük incremental update modeli için teknik profil.

giatamulticodeshotel-mapping
İncele →
travel-ecosystem

Gimmonix Mapping.Works: Hotel ve Room Mapping Profili

gimmonix.com

Gimmonix Mapping.Works'ün supplier-agnostic hotel/room mapping, canonical ID ve deduplication yaklaşımı için teknik profil.

gimmonixmapping-workshotel-mapping
İ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 →
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 →