28 Temmuz 2026 · Alper Tekin
Seyahat rezervasyon API'lerinde idempotency
Idempotency anahtarı nedir, rezervasyon API'leri neden ister ve traveldistro güvenli tekrarları tüm dikeylerde nasıl uygular.
Bir işlem, iki kez çalıştırıldığında tek seferle aynı etkiyi bırakıyorsa idempotent'tir. Okuma işlemi için bu bedavadır. Para hareket ettiren ve envanter rezerve eden bir rezervasyon içinse tasarlanması gerekir.
Zaman aşımı problemi
Sunucunuz rezervasyon isteği gönderir. Cevap hiç gelmez: bir proxy bağlantıyı düşürmüştür, mobil ağ göz kırpmıştır, bir deploy pod değiştirmiştir. Rezervasyon oldu mu?
Idempotency yoksa iki cevap da pahalıdır. Tekrar denerseniz ve ilk deneme başarılıysa, müşterinizin iki rezervasyonu ve sizin bir iade görüşmeniz olur. Tekrar denemezseniz ve ilk deneme başarısızsa, hiçbir şey satmamışsınızdır ve müşteri gider.
Idempotency anahtarı bunu nasıl çözer
Idempotency-Key başlığıyla tekrar güvenlidir:
- Rezervasyon niyeti başına benzersiz bir anahtar üretir, istekle gönderirsiniz.
- Sunucu anahtarı hiç görmediyse rezervasyonu normal işler.
- Sunucu o anahtarı zaten işlediyse, yeniden rezervasyon yapmak yerine orijinal sonucu döner.
- Aynı anahtar farklı bir istek gövdesiyle gelirse API bunu
IDEMPOTENCY_CONFLICTile reddeder; çünkü bu, çağıran tarafta yüksek sesle duyurulmayı hak eden bir bug'dır.
Çağıran için kural kısadır: aynı anahtarla tekrar deneyin, bir anahtarı asla farklı bir niyet için yeniden kullanmayın.
traveldistro bunu nasıl uygular
Bilet, transfer, kiralık araç ve eSIM'deki her rezervasyon endpoint'i Idempotency-Key başlığını zorunlu tutar. Başarısız rezervasyon sıfır artık duruma geri sarılır; çakışmalar makine-okunur 409 döner. Davranışın tamamı hata kataloğunda ve güvenilirlik sayfasında belgeli.