Ödeme Sistemleri Neden Dağıtık Sistemlerdir?
Bir ödeme tek bir servisin işi değildir: sepet, stok, provider gateway ve finans aynı gerçek üzerinde anlaşmak zorundadır. Senkron zincir neden kırılır?
Bir ödeme tek bir servisin işi değildir: sepet, stok, provider gateway ve finans aynı gerçek üzerinde anlaşmak zorundadır. Senkron zincir neden kırılır?
Ödeme Succeeded olması, siparişin Completed olduğu anlamına gelmez. Checkout ve payment yaşam döngülerini ayırmazsanız, üretimde iki gerçek çakışır.
PSP'nin parayı alması bir tek adımdır. Siparişi bitirmek; stok, finans, bildirim ve temizlik adımlarının hepsinin başarılı olmasını gerektiren bir saga'dır.…
Ödeme başlarken sepeti canlı okumak, tutarı ve para birimini kararsız bırakır. Intent anında donan bir snapshot olmadan finalization güvenilir çalışmaz.
Idempotency tek bir header değildir. API anahtarından adım işaretçisine kadar beş farklı katmanda ayrı ayrı kurulması gereken bir savunma yığınıdır.
Webhook'lar tekrarlanır, kaybolur, sırasız ve gecikmeli gelir. İmzayı doğrulayın, hızlı ACK verin, ağır işi asla senkron çalıştırmayın.
Veritabanına yazmak ile event yayınlamak aynı transaction'da değilse, biri kaybolur ya da tekrarlanır. Outbox yayınlar, inbox tüketicide dedup eder.
Evidence, PSP'nin ne dediğidir. State, sizin ne karar verdiğinizdir. Bu ikisini aynı kayıtta tutarsanız, kurtarma sırasında hangisine güveneceğinizi…
Provider gateway PSP SDK'sını nasıl sahiplenir, checkout orchestrator neden yalnızca semantik bir arayüz görmelidir? Kart ve wallet akışlarının farklı…
Provider gateway'in aldığı webhook, downstream'e PSP'nin event adıyla mı, yoksa PaymentCaptured/PaymentFailed gibi semantik bir olayla mı ulaşmalı?
Timeout, 429, 5xx, business decline ve infrastructure hatası aynı şey değildir. Her kategori farklı bir retry politikası ister.
Exponential backoff, jitter, cap, defer ile retry farkı ve circuit breaker — bir önceki bölümdeki taksonomiyi çalışan koda dönüştürün.
Conditional UPDATE ile lease alma, sıkışmış işleri kurtaran watcher ve neden yalnızca mesaj Nack etmek production ödemede yetmez.
Sweeper'lar drift'i nasıl iyileştirir: PSP başarılı derken local kayıt expired olabilir; aged FinalizePending nasıl toparlanır.
Olay müdahale kılavuzu: müşteri ücretlendirildi ama sipariş oluşmadı; çok-niyetli sepet karmaşası; dedup'ı dikkatle temizlemek.
Webhook ile senkron yanıt aynı ödemeye aynı anda dokunduğunda version token ve lease nasıl yarışı çözer? Bayat okumanın terminal ödemede client secret…
Her log, metrik ve trace payment id ile nasıl korele edilir? Adım adım event log ve deferred finalize metrikleri operasyonu nasıl kurtarır?
Otomasyon önce: reconciliation worker ve recovery pipeline. Uniqueness duvarları replay'i engellediğinde kanıta dayalı insan runbook'ları devreye girer.
Exactly-once messaging bir yalandır. Defense in depth ile idempotency, dedup, outbox ve reconciliation birleşince effectively-once iş sonucu nasıl elde…
22 bölümlük serinin sentezi: checkout orchestrator ve provider gateway ile production ödeme motoru için mimari checklist.
Kariyer perspektifi: fintech şirketleri Stripe SDK'sını değil; failure thinking, reconciliation, idempotency ve evidence-driven düşünceyi arıyor.