Blog
Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.
Payments Service: Fake Ödeme Sağlayıcısı, Idempotent Charge ve Webhook Callback'i
Payments, ödeme sağlayıcısına siparişten türetilen bir Idempotency-Key ile charge gönderiyor, POST'u HTTP katmanında tekrar etmiyor ve zaman aşımını başarısızlık değil bilinmeyen sonuç sayıyor; sonucu imzalı ve replay korumalı bir webhook ya da reconciliation job'ı belirliyor. Sağlayıcının modeli bir anti-corruption layer'da kalıyor; iptal edilmiş siparişe geç gelen ödeme uçtan uca iadeye dönüşüyor.
Idempotent Dış Çağrılar: Idempotency-Key Göndermek, "Bilinmeyen Sonuç" ve Reconciliation
Timeout'tan sonra ödemenin alınıp alınmadığını bilemezsin; çözüm, ödeme niyeti başına bir Idempotency-Key üretip ilk istekten önce saklamak, retry'larda aynı key'i göndermek ve açık kalanları reconciliation job'uyla sağlayıcıya sormak. Bookstore'da timeout, 409 ve tekrar oynatılan yanıtı gerçek koşularla görüyoruz.