Idempotency Key Nedir?

İngilizce: Idempotency Key

Idempotency key, tekrar denenebilen API isteklerine verilen benzersiz anahtarla çift ödeme veya çift kayıt oluşmasını önler.

Idempotency Key Nedir?

Idempotency key, özellikle ödeme, sipariş oluşturma ve rezervasyon gibi tekrar denemeye açık API isteklerinde kullanılan benzersiz işlem anahtarıdır. İstemci aynı işlemi tekrar gönderirse sunucu anahtarı tanır ve yeni işlem başlatmak yerine önceki sonucu döndürür.

Tipik akışta istemci UUID benzeri bir anahtar üretir ve isteği Idempotency-Key başlığıyla gönderir. Sunucu bu anahtarı, istek özeti ve işlem sonucuyla birlikte belirli süre saklar. Ağ bağlantısı kopar, istemci zaman aşımına düşer veya kullanıcı butona iki kez basarsa aynı anahtar ikinci kez geldiğinde sistem çift kayıt oluşturmaz.

Nerede Kullanılır?

Ödeme tahsilatı, para transferi, fatura oluşturma, stok düşme, kargo etiketi basma ve bilet rezervasyonu gibi işlemlerde idempotency key kritik koruma sağlar. Sadece okuma yapan GET isteklerinde genellikle gerekmez; sorun, aynı yazma işleminin belirsiz sonuçla tekrar denenmesidir.

Tasarım Notları

Anahtarın saklama süresi, aynı anahtarla farklı istek gövdesi gelirse ne yapılacağı ve başarısız işlemlerin nasıl kaydedileceği açıkça belirlenmelidir. Bu mekanizma idempotent davranışı sonradan taklit eder; yine de API tarafında transaction yönetimi ve benzersiz veritabanı kısıtlarıyla desteklenmelidir.