RPO 5dk sürekli replikasyon demek (cross-region streaming + PITR), RTO 30dk hazır bekleyen sıcak yedek (IaC ile önceden kurulu, S3 CRR, Route 53 failover) demek. Aktif-pasif bu sayılara doğru tercih. Ama plan test edilmezse tahmindir — düzenli prova yap.
#dayanıklılık#altyapı#veritabanı
İki katmanı birden düzelt: uygulamada tekrarlı logu throttle/sample et ('×10.000' diye tek satır), retry'a backoff koy; sunucuda logrotate ile boyut/sayı sınırı uygula ve logu kök diske değil ayrı bir volume'a yaz. Sınırsız loglamayı bir bug gibi gör.
#dayanıklılık#gözlemlenebilirlik#altyapı
Sadece IP'ye göre limitleme dönen proxy'lere yenik düşer. Redis tabanlı sliding-window'u kullanıcı adı + IP + subnet/ASN + UA + ülke gibi çok boyutta anahtarla; hesap kilidi ve CAPTCHA ekle, gerçek volumetrik DDoS'u edge'e (Cloudflare) it. Login yolu fail-closed olsun.
#dayanıklılık#güvenlik#redis
Neyin kritik (gez, sepet, ödeme) neyin lüks (öneri, benzer ürün, yorum) olduğuna önceden karar ver; lüksleri feature flag + kısa timeout arkasına al. Yük altında kill-switch onları kapatsın ya da mock veri dönsün. %98 CPU'da doğaçlama yapma, provayı önceden yap.
#dayanıklılık#mimari#ölçekleme
Tek atomik işlemi, her biri telafi (compensating) aksiyonu olan yerel işlemler dizisine böl. Orchestrator merkezi koordinatör adımları kuyruktan sürsün, hata olunca telafileri ters sırayla çalıştırsın. Her adımı idempotent yap, outbox ile yayınla.
#dayanıklılık#mikroservis#kuyruk
Bir node yalnızca çoğunluğa (quorum) sahipse primary olabilsin. Failover'ı elle yazma; Patroni + etcd/Consul (Raft) kullan, çoğunluktan kopan eski primary kendini düşürsün (fencing). Tek sayıda oy veren üye koy.
#dayanıklılık#postgresql#veritabanı
Yavaş bağımlılığı sürekli çağırmayı bırak: CLOSED'da say, OPEN'da hızlıca fallback dön, HALF-OPEN'da deneme isteğiyle yokla. Ama asıl katil 30 saniyelik timeout — breaker'ı kısa timeout, bulkhead ve fallback ile birlikte kur.
#dayanıklılık#mimari#laravel
Query-string busting güvenilmez — bazı CDN'ler query'yi cache key'de yok sayar. Sağlam desen content-hash'li dosya adı (`app.a8f9b2.js`): içerik değişmedikçe ad sabit, sonsuza kadar `immutable` cache'lersin. Asla uzun cache'lenmemesi gereken tek şey, bu hash'lere işaret eden HTML.
#performans#ci-cd#altyapı
`wildcard`/`regexp` sorgu zamanında tarama yapar, inverted index'i kullanmaz ve 10M dokümanda CPU'yu yakar. İşi index zamanına taşı: `edge_ngram` ile önekleri yazma anında üret, autocomplete düz bir term lookup'a (milisaniye) dönsün.
#performans#elasticsearch#veritabanı
`file_get_contents`/`Storage::get` dosyayı tümüyle RAM'e yükler — 2-5 GB'da ölümcül. Önce baytı PHP'den hiç geçirme: presigned S3 URL ya da `X-Sendfile`. Mecbursan `Storage::readStream` + `StreamedResponse` ile chunk-by-chunk bas, bellek birkaç MB'da sabit kalsın.
#performans#laravel#altyapı