Idempotent Nedir?
İngilizce: Idempotent
Idempotent işlem, aynı isteğin birkaç kez çalışması durumunda sistemde tek çalıştırmayla aynı nihai sonucu bırakan işlemdir.
Idempotent Nedir?
Idempotent işlem, aynı komut birden fazla kez çalıştırılsa bile sistemin nihai durumunu değiştirmeyen işlemdir. “Bu kullanıcının e-posta adresini a@ornek.com yap” komutu tekrarlandığında sonuç aynı kalır; “bakiyeden 100 TL düş” komutu tekrarlandığında sonuç her seferinde değişir.
HTTP’de GET, HEAD, PUT ve DELETE semantik olarak idempotent kabul edilir. GET veri okumalıdır; PUT bir kaynağı belirtilen tam hale getirir; DELETE aynı kaynağı tekrar silmeye çalışsa da sonuçta kaynak yoktur. POST ise genellikle yeni işlem başlattığı için idempotent değildir.
Neden Önemlidir?
Dağıtık sistemlerde ağ kopması, zaman aşımı veya istemci yeniden denemesi sık görülür. İstemci “istek sunucuya ulaştı mı?” sorusunun cevabını bilemeyebilir. İdempotent tasarım, aynı isteğin güvenle tekrar denenebilmesini sağlar ve özellikle API entegrasyonlarında belirsizliği azaltır.
Pratik Tasarım
Kaynak odaklı REST API tasarımında metot semantiği doğru seçilmeli, yazma işlemleri benzersiz kısıtlar ve transaction ile korunmalıdır. Doğal olarak idempotent olmayan ödeme veya sipariş oluşturma gibi akışlarda idempotency key kullanılır.
İlgili Terimler
Idempotency key, tekrar denenebilen API isteklerine verilen benzersiz anahtarla çift ödeme veya çift kayıt oluşmasını önler.
İdempotentlik (Ödeme Entegrasyonu)İdempotentlik, aynı ödeme veya API isteği tekrar gelse bile sistemin işlemi yalnızca bir kez sonuçlandırmasını sağlar.
REST APIREST API, HTTP yöntemleriyle kaynakları okuma ve değiştirme üzerine kurulu, entegrasyonlarda yaygın kullanılan web servis tasarımıdır.