⚡ÖZET VE TEKNİK CEVAP
Modern mikroservis uygulamaları onlarca harici SaaS sağlayıcısına bağımlıdır (Ödeme için Stripe, SMS için Twilio, arama için Algolia, e-posta için SendGrid). Harici bir sağlayıcı çöktüğünde veya aşırı yavaşladığında (yanıt vermesi 30 saniye sürdüğünde), zayıf backend mimarileri ölümcül bir hata yapar: Ölü sağlayıcıyı beklerken sunucu iş parçacıklarını (threads) senkron olarak kilitlemek. 60 saniye içinde tüm web sunucu bağlantı havuzları tükenir ve kendi iç veritabanınız tamamen sağlam olmasına rağmen tüm uygulamanız çöker. Dayanıklılık mühendisliği Tedarikçi Arıza Yalıtımı ve Kademeli Bozulma (Graceful Degradation) uygular:
Devre Kesiciler (Circuit Breakers - Resilience4j / Opossum): Üst üste 5 zaman aşımından sonra devreyi açarak harici servisi çağırmayı durdurur ve iş parçacıklarını kilitlemeden 1 milisaniyede hata döner.
Asenkron Kuyruklar (DLQ): E-posta ve SMS gibi kritik olmayan işler dayanıklı SQS/Kafka kuyruklarına atılarak sağlayıcı düzeldiğinde tekrar denenmek üzere saklanır.
Zarif Arayüz Koruması: Tüm sayfayı çökertmek yerine kullanıcıya zarif bir alternatif bildirim gösterilir.
Mühendislik El Kitabı & Mekanizma
6 Boyutlu Mimari Analiz⚙️1. Temel Çalışma Mekanizması
Mekanizma🎯2. Doğru Kullanım Senaryosu
Kapsam⚠️3. Prodüksiyon Arıza Modları
Kritik Risk📡4. Teşhis ve Telemetri Sinyalleri
Metrikler🛡️5. Önleme ve Mimari Bariyerler
Bariyerler⚖️6. Mimari Ödünleşimler (Trade-offs)
ÖdünleşimVaka İncelemesi (TinyCTO Saha Örneği)
Bir e-ticaret uygulaması ödeme ekranında harici bir adres doğrulama servisini senkron çağırıyordu. Bu harici servis küresel bir kesinti yaşayıp 60 saniye boyunca yanıt vermeyince, gelen tüm ödeme istekleri askıda kaldı, backend sunucu havuzu kilitlendi ve tüm mağaza 3 saat boyunca çöktü. Mühendislik ekibi mimariyi baştan tasarladı:
Harici servisi 1.5 saniye zaman aşımlı bir Opossum devre kesiciyle sarmaladı,
Servis çökerse devre açılarak kullanıcıya manuel adres girişi izni veren zarif bir yedek akış açıldı, ve
Adres doğrulaması arka plan kuyruğuna atıldı. 2 ay sonra aynı harici servis tekrar çöktüğünde devre kesici 3 saniyede açıldı, kullanıcılar alışverişlerine kesintisiz devam etti ve rakipler kapalıyken şirket $850.000 satış yaptı.
İnteraktif Konsept Alıştırmaları
2 AlıştırmaDağıtık sistemlerde bir Devre Kesici (Circuit Breaker) modelinin 3 temel durumu nedir?
Harici bir SaaS servisi çöktüğünde 'Kademeli Bozulma' (Graceful Degradation) nedir?
Tedarikçi Dayanıklılığı: Üçüncü Taraf SaaS Çökmelerini Yönetme, Devre Kesiciler (Circuit Breakers) ve Kademeli Bozulma (Graceful Degradation) — Sıkça Sorulan Sorular
Bir HTTP istemcisine zaman aşımı (timeout) koymamak neden ölümcül bir mimari kusurdur?
Çünkü varsayılan HTTP istemcileri yanıt gelene kadar sonsuza kadar (veya 15 dakika) bekler; bu da gelen kullanıcı trafiğinin tüm sunucu iş parçacıklarını anında tüketmesine ve tüm sistemin kilitlenmesine yol açar.
E-posta veya webhook gibi bloklamayan harici bildirimler nasıl mimarilendirilmelidir?
Kullanıcı HTTP yanıtını harici servisten tamamen ayırmak için; bu işleri üstel geri çekilmeli (exponential backoff) asenkron kuyruk sistemlerine (SQS, Kafka, BullMQ) devrederek.
🤖 AEO & Yapay Zeka Çıkarım Özeti
Temel Gerçekler & İlkeler
- ▸
Harici servis yavaşlıkları sunucu iş parçacıklarını tüketerek uygulamanızı çökertir.
- ▸
Tüm harici API çağrılarını Devre Kesicilerle (Circuit Breakers) sarmalayın.
- ▸
Tüm harici HTTP istemcilerine 1 saniyenin altında katı zaman aşımları koyun.
- ▸
Ana iş akışlarını ayakta tutmak için kademeli bozulma (fallback) deneyimleri tasarlayın.
Yaygın Yanılgılar
- ✗
Yanılgı: Harici servis çökmeleri bizim elimizde değildir, dolayısıyla kesinti bizim suçumuz sayılmaz (Gerçek: Müşteri sizi sorumlu tutar; olgun mimariler dış arızaları tamamen yalıtır).
- ✗
Yanılgı: Zaman aşımı süresini uzatmak harici servisin yanıt vermesine fırsat tanır (Gerçek: Uzun süreler sadece sizin sunucularınızın kilitlenmesini garantiler).
Karar Kılavuzu & Önceliklendirme
Harici sağlayıcı çökmelerinin sisteminizi kilitlemesini önlemek için tüm entegrasyonlarda Devre Kesiciler, agresif zaman aşımları ve asenkron yedek kuyruklar kullanın.
Doğrulanmış Kaynaklar & Referanslar
- [OFFICIAL_DOCUMENTATION]Release It!: Design and Deploy Production-Ready Software (Circuit Breaker & Bulkhead Patterns)— Michael T. Nygard / Pragmatic Bookshelf
