fallback_connector_config_id üzerinden ikinci denemeyi yapar.
Hangi durumlarda devreye girer?
Genel kural: kart sahibi kaynaklı reddetmeler retry edilmez, banka altyapısı kaynaklı geçici sorunlar retry edilir.
Akış
Kural konfigürasyonu
Routing kuralındafallback_connector_config_id alanını doldurun:
fallback_connector_config_id boş bırakılırsa o kural için Smart Retry devreye girmez — birinci tercih başarısız olursa işlem failed olur.
Yanıt davranışı
Müşteri tarafından bakıldığında Smart Retry görünmez — tek bir başarılıPaymentOperationResult döner:
GET /transactions/{id}) → connector_code ve connector_configuration_id alanlarından görebilirsiniz. Tüm denemelerin geçmişi İşlem Geçmişi (Timeline) üzerinden çekilir — her başarısız+başarılı deneme ayrı bir TransactionHistory kaydı olur.
Banka sağlığı + Smart Retry
Smart Retry tek başına çalışmaz; Circuit Breaker ile birlikte hareket eder:- Banka hata oranı eşiği aşarsa Circuit Breaker açılır → o konnektör yönlendirme havuzundan çıkar
- Yeni gelen istekler doğrudan fallback konnektöre gider (birinci denemeden sırasında değil, kuralda)
- Sağlık geri gelince Circuit Breaker yarı-açık → kapalı → konnektör yine ana havuzda
Performans etkisi
Toplam istek süresi, denenen konnektörlerin toplamı + transition overhead’idir:- Tek başarılı deneme: ~1-2 sn
- 1 retry sonrası başarı: ~3-7 sn (birinci timeout + ikinci başarılı)
- Timeout sonrası fallback: ~5-10 sn
Idempotency korunur
Smart Retry sırasında aynıIdempotency-Key Payven tarafında korunur. Birinci konnektöre giderken Payven tarafı, fallback’e giderken yine korunur — Idempotency-Key zaten Payven cache + DB’sinde tutulur. Sizin tarafınızda bir şey yapmanız gerekmez.
Banka komisyon farkı: birinci ve fallback konnektörün komisyon oranları farklı olabilir. Smart Retry’a düşmüş işlemleri raporlarken
connector_code üzerinden hangi konnektörün başarılı olduğunu görüp komisyon hesaplamanızı buna göre yapın.Yapılandırma sınırları
İleri seviye senaryolar (çoklu fallback, exponential backoff arasında) için yol haritası:
- Çoklu
fallback_chaindesteği - İstek başına timeout konfigürasyonu
- Retry kararı için ML tabanlı sinyaller (banka sağlığı + geçmiş başarı)