Güvenlik ve Dayanıklılık / Uygulama ve satın alma rehberi

Circuit Breaker ve Fallback: Dış Servis Bozulunca Doğru Davranmak

Kargo servisi yanıt vermediğinde bütün mağazanın yavaşlaması gerekmeyebilir. Ancak sorun yaşanırken müşteriye uydurma teslimat veya ödeme sonucu göstermek de çözüm değildir. Dayanıklılık, hatayı saklamak değil etkisini sınırlayıp doğru durumu anlatmaktır.

Yeniden deneme ile devre kesmeyi ayırın

Retry, geçici sorunun düzeleceği beklentisiyle işlemi tekrar etmeyi hedefler. Circuit breaker ise başarısız olma ihtimali yüksek çağrıları bir süre durdurarak uygulamanın ve dış servisin yükünü sınırlar. Microsoft bu iki desenin farklı amaçları olduğunu ve birlikte kullanılırken davranışlarının uyumlu olması gerektiğini açıklar. [1]

Bu ayrım iş sonucunu da etkiler. Yanıt alınamayan bir ödeme isteğini gelişigüzel tekrar etmek yeni bir tahsilat riski oluşturabilir. Devreyi açmak da önceki isteğin sonucunu çözmez. İşlem kimliği, durum sorgulama ve uzlaştırma gibi iş kuralları ayrıca tasarlanmalıdır. Dayanıklılık bileşeni bunların yerine geçmez.

Üç durumu uygulamanın diline çevirin

Kapalı durumda çağrılar normal ilerler; hata koşulları oluşunca açık duruma geçilerek çağrılar hızla reddedilebilir. Yarı açık durumda ise sınırlı denemelerle toparlanma sınanır. [1] Kullanıcıya bu teknik isimleri aynen göstermek gerekmez; hangi işlemin geçici olarak kullanılamadığı anlaşılır biçimde anlatılmalıdır.

Varsayımsal mağazada ürün açıklaması görüntülenebiliyor, kargo fiyatı servisi ise yanıt vermiyor olsun. Ürün gezinmesi çalışmaya devam edebilir. Ancak kesin kargo ücreti bilinmeden sıfır ücret veya uydurma teslim tarihi göstermek uygun değildir. Alternatif akış, işletmenin gerçekten destekleyebildiği sınırlarla kurulmalıdır.

Fallback doğru ama sınırlı sonuç sunmalı

Önceden alınmış veri kullanılacaksa güncelliği ve uygunluğu değerlendirilmelidir. Eski bir ürün açıklaması bazı durumlarda kabul edilebilirken eski stok veya hesap bakiyesi kritik kararı yanıltabilir. “Varsayılan değer” seçimi yazılım geliştiricinin keyfi tercihi değil, işin riskine bağlı karardır.

Kullanıcıdan daha sonra tamamlanacak bir talep alınabiliyorsa bekleme ve iptal davranışı açıklansın. Sadece kuyruk kaydı oluşturulduğu halde işlem tamamlandı mesajı verilmesin. Sistem kısıtlı çalışırken hangi özelliklerin kullanılabildiğini ve hangilerinin doğrulama beklediğini ayrı gösterin.

Örnek kesinti kabul matrisi

Örnek karar ve kabul kontrolleri
OlayBeklenen korumaİş sonucu
Dış servis sürekli hata veriyorÇağrı yükü sınırlanırAçık geçici durum
Yanıt çok yavaşUygun zaman aşımı çalışırBelirsiz sonuç uzlaştırılır
Servis toparlanıyorSınırlı deneme yapılırAni yükle tekrar bozulmaz
Alternatif veri kullanılıyorGüncellik ve kapsam kontrolüYanlış kesinlik verilmez

Tablo bütün projelerde aynı eşikleri kullanmayı önermez. Hata türü, trafik ve dış servisin toparlanma davranışı ölçülerek karar verilsin. Kullanıcı hatası ile servis kesintisi aynı sayaçta birleştirilirse sağlıklı bir bağlantı gereksiz yere kapatılabilir. Çağrı türleri uygun kapsamda ayrılmalıdır.

Toparlanmayı ve yan etkileri birlikte izleyin

Devrenin durum değiştirmesi izlenebilir bir olay olsun. Uyarılar, hangi bağımlılığın etkilendiğini ve kullanıcıya ne olduğunu anlatabilsin. Sadece hata sayısının azalması başarı değildir; bütün çağrılar engellendiği için de hata sayısı değişmiş olabilir. Başarılı iş sonucu, reddedilen çağrı ve gecikme birlikte değerlendirilsin.

Kabul testinde kontrollü gecikme, sürekli hata ve kademeli düzelme senaryoları kullanın. Sağlık kontrolü gerçek müşteri siparişi veya ödeme üretmemelidir. Manuel sıfırlama gerekiyorsa yetkili ve kayıtlı olsun. Desenin eklenmesiyle kesintisizlik garantisi verilmesin; hangi bağımlılık ve hata türlerini kapsadığı açıkça teslim edilsin.

Sık sorulan sorular

Circuit breaker bütün hataları otomatik düzeltir mi?

Hayır. Başarısız çağrıların etkisini sınırlamaya yardımcı olur. Asıl servis sorununun giderilmesi ve belirsiz işlemlerin uzlaştırılması ayrı işlerdir.

Her dış servise aynı kural uygulanabilir mi?

Uygun olmayabilir. Ödeme, arama ve bildirim farklı yan etkiler taşır. Hata sınıfları, eşikler ve alternatif davranış iş akışına göre belirlenmelidir.

Teknik kaynaklar

  1. Microsoft: circuit breaker deseni ve yeniden denemeden farkı

Kaynaklar teknik kavramları destekler. Örnek tablolar ve senaryolar önerilen çalışma araçlarıdır; gerçek müşteri sonucu, bağımsız denetim veya platform garantisi değildir. Uygulama öncesinde kullanılan ürünün güncel koşulları kontrol edilmelidir.

Bu ihtiyacı çalışan bir sisteme dönüştürelim.

Mevcut sisteminizi, sorun yaşadığınız iş akışını ve beklediğiniz sonucu paylaşın. Ganz Dijital ile projenizin kapsamını ve kabul koşullarını netleştirin.

İlgili hizmeti inceleWhatsApp üzerinden görüşelim →

Hazırlama notu: İçerik, belirtilen kaynaklar ve özgün örnek senaryolar kullanılarak yapay zekâ desteğiyle hazırlanmıştır. Sayısal örnekler aksi belirtilmedikçe varsayımsaldır. İşletmeye özel güvenlik, hukuki ve operasyonel gereksinimler ayrıca değerlendirilmelidir.