# Sor Bakalım: Yazılım Soru-Cevap

> Yazılım mimarisi, kariyer, PHP, Go ve geliştirme süreçleri üzerine merak ettiklerini sor; cevapları burada herkese açık paylaşıyorum.

- Cevaplanmış sorular: 71
- Kaynak: https://www.muhammetsafak.com.tr/sor-bakalim/
- Dil: tr-TR
- Yazar: Muhammet Şafak

---
## Cevaplanmış sorular

### Birbirine bağımlı birden fazla işi, ilk hata hepsini iptal edecek şekilde errgroup ile mi yürütmeliyim?

- `errgroup.WithContext`'e geçip üstüne request-level bir timeout koyun ve ctx'i her HTTP/DB çağrısına geçirin; ihmal edilen ctx, iptali sessizce öldürür.
- Soran: Onur
- Cevaplandı: 2026-09-04
- Etiketler: #Go, #Concurrency
- https://www.muhammetsafak.com.tr/sor-bakalim/birbirine-bagimli-birden-fazla-isi-ilk-hata-hepsini-iptal-edecek-sekilde/
- Markdown: https://www.muhammetsafak.com.tr/sor-bakalim/birbirine-bagimli-birden-fazla-isi-ilk-hata-hepsini-iptal-edecek-sekilde.md

### İşlediğim satırları aynı anda güncellerken chunk yerine chunkById mı kullanmalıyım?

- Satır başına gerçek iş varsa `chunkById()` kullanıp cursor kolonuna dokunmayın; iş yalnız bir kolonu güncellemekse tek bir set-based `UPDATE`'e geçin.
- Soran: Naz
- Cevaplandı: 2026-09-01
- Etiketler: #Laravel, #Eloquent, #Performans
- https://www.muhammetsafak.com.tr/sor-bakalim/isledigim-satirlari-ayni-anda-guncellerken-chunk-yerine-chunkbyid-mi-kullanmaliyim/
- Markdown: https://www.muhammetsafak.com.tr/sor-bakalim/isledigim-satirlari-ayni-anda-guncellerken-chunk-yerine-chunkbyid-mi-kullanmaliyim.md

### readonly value object'lerimde "withX" tarzı kopyalama metotlarını nasıl temiz yazarım?

- `readonly`'de withX yeni instance döndürür: taşınabilir yol `new self` + named arguments, PHP 8.5'te doğrulama basitse `clone($this, [...])`.
- Soran: Kaan
- Cevaplandı: 2026-08-28
- Etiketler: #PHP, #OOP
- https://www.muhammetsafak.com.tr/sor-bakalim/readonly-value-objectlerimde-withx-tarzi-kopyalama-metotlarini-nasil-temiz-yazarim/
- Markdown: https://www.muhammetsafak.com.tr/sor-bakalim/readonly-value-objectlerimde-withx-tarzi-kopyalama-metotlarini-nasil-temiz-yazarim.md

### Senior'dan staff'a geçişte işin doğası nasıl değişiyor?

- Org seviyesinde sahipsiz bir problemi üstlenip çözümü yazılı bir tech strategy'ye dökün, etkiyi commit'lerinizle değil ekiplerin çıktısıyla gösterin.
- Soran: Derya
- Cevaplandı: 2026-08-25
- Etiketler: #Kariyer, #Liderlik
- https://www.muhammetsafak.com.tr/sor-bakalim/seniordan-staffa-geciste-isin-dogasi-nasil-degisiyor/
- Markdown: https://www.muhammetsafak.com.tr/sor-bakalim/seniordan-staffa-geciste-isin-dogasi-nasil-degisiyor.md

### Correlation ID'yi HTTP isteğinden kuyruğa düşen job'lara kadar nasıl taşımalıyım?

- ID'yi W3C `traceparent` olarak üretip SQS message attribute'unda taşıyın, her sınırda OTel propagator ile enjekte edin, logger'a `trace_id` verin.
- Soran: Cem
- Cevaplandı: 2026-08-21
- Etiketler: #Observability, #Loglama, #Kuyruk
- https://www.muhammetsafak.com.tr/sor-bakalim/correlation-idyi-http-isteginden-kuyruga-dusen-joblara-kadar-nasil-tasimaliyim/
- Markdown: https://www.muhammetsafak.com.tr/sor-bakalim/correlation-idyi-http-isteginden-kuyruga-dusen-joblara-kadar-nasil-tasimaliyim.md

### Container'ı non-root çalıştırınca mount edilen storage dizinine yazamıyorum, izinleri nasıl çözerim?

- Kullanıcıyı build-time `ARG UID` ile sabitleyin, `COPY --chown` kullanın, named volume'de entrypoint yalnız `storage` ve `bootstrap/cache`'i chown etsin.
- Soran: Barış
- Cevaplandı: 2026-08-18
- Etiketler: #Docker, #Güvenlik, #Laravel
- https://www.muhammetsafak.com.tr/sor-bakalim/containeri-non-root-calistirinca-mount-edilen-storage-dizinine-yazamiyorum-izinleri-nasil/
- Markdown: https://www.muhammetsafak.com.tr/sor-bakalim/containeri-non-root-calistirinca-mount-edilen-storage-dizinine-yazamiyorum-izinleri-nasil.md

### OpenAPI şemasını önce mi yazmalıyım yoksa koddan mı üretmeliyim?

- `openapi.yaml`'ı tek doğru kaynak yapıp contract-first gidin; drift'i bitiren şey yön değil, CI'da spec'i koda karşı doğrulayan yeşil contract testtir.
- Soran: Ece
- Cevaplandı: 2026-08-14
- Etiketler: #API, #API Tasarımı
- https://www.muhammetsafak.com.tr/sor-bakalim/openapi-semasini-once-mi-yazmaliyim-yoksa-koddan-mi-uretmeliyim/
- Markdown: https://www.muhammetsafak.com.tr/sor-bakalim/openapi-semasini-once-mi-yazmaliyim-yoksa-koddan-mi-uretmeliyim.md

### Sadece 'pending' satırları taranan bir kuyruk tablosunda partial index kullanmalı mıyım?

- `WHERE status='pending'` partial index'ine `ORDER BY` kolonunu da katın, `FOR UPDATE SKIP LOCKED` ile eşleyin ve `'pending'`'i sorguya literal geçin.
- Soran: Yiğit
- Cevaplandı: 2026-08-11
- Etiketler: #PostgreSQL, #Veritabanı, #Performans
- https://www.muhammetsafak.com.tr/sor-bakalim/sadece-pending-satirlari-taranan-bir-kuyruk-tablosunda-partial-index-kullanmali-miyim/
- Markdown: https://www.muhammetsafak.com.tr/sor-bakalim/sadece-pending-satirlari-taranan-bir-kuyruk-tablosunda-partial-index-kullanmali-miyim.md

### İç içe geçmiş servis çağrılarında context iptalini doğru şekilde nasıl yayarım?

- İptalin yayılması için `r.Context()`'i her downstream çağrıya geçirin, zincirde `context.Background()` bırakmayın, side-effect'e `WithoutCancel` verin.
- Soran: Tolga
- Cevaplandı: 2026-08-07
- Etiketler: #Go, #Concurrency
- https://www.muhammetsafak.com.tr/sor-bakalim/ic-ice-gecmis-servis-cagrilarinda-context-iptalini-dogru-sekilde-nasil-yayarim/
- Markdown: https://www.muhammetsafak.com.tr/sor-bakalim/ic-ice-gecmis-servis-cagrilarinda-context-iptalini-dogru-sekilde-nasil-yayarim.md

### Integer cent olarak sakladığım para alanları için custom cast mı yoksa accessor/mutator mı kullanmalıyım?

- DB'de integer cent, modelde immutable `Money`: eşlemeyi tek bir `CastsAttributes` sınıfına toplayın, currency'yi aynı cast'ta ikinci kolon yapın.
- Soran: Sıla
- Cevaplandı: 2026-08-04
- Etiketler: #Laravel, #Eloquent, #PHP
- https://www.muhammetsafak.com.tr/sor-bakalim/integer-cent-olarak-sakladigim-para-alanlari-icin-custom-cast-mi-yoksa/
- Markdown: https://www.muhammetsafak.com.tr/sor-bakalim/integer-cent-olarak-sakladigim-para-alanlari-icin-custom-cast-mi-yoksa.md

### Tip güvenli koleksiyonlar için PHPStan generics mi kullanmalıyım, yoksa her tür için ayrı sınıf mı yazmalıyım?

- `list<Order>` docblock'ları ve CI'da katı PHPStan'ı varsayılan yapın; davranış gerekince tek generic `Collection<T>`, güven sınırında concrete sınıf.
- Soran: Ozan
- Cevaplandı: 2026-07-31
- Etiketler: #PHP, #Statik Analiz
- https://www.muhammetsafak.com.tr/sor-bakalim/tip-guvenli-koleksiyonlar-icin-phpstan-generics-mi-kullanmaliyim-yoksa-her-tur/
- Markdown: https://www.muhammetsafak.com.tr/sor-bakalim/tip-guvenli-koleksiyonlar-icin-phpstan-generics-mi-kullanmaliyim-yoksa-her-tur.md

### Orta seviyeden senior'a geçerken beklenen "daha geniş etki"yi nasıl gösteririm?

- Terfiyi soyut bir hedef değil somut bir hamle yapın: kimsenin sahiplenmediği bulanık bir problemi bir çeyrek boyunca tanımından yayılmasına dek üstlenin.
- Soran: Deniz
- Cevaplandı: 2026-07-28
- Etiketler: #Kariyer
- https://www.muhammetsafak.com.tr/sor-bakalim/orta-seviyeden-seniora-gecerken-beklenen-daha-genis-etki-yi-nasil-gosteririm/
- Markdown: https://www.muhammetsafak.com.tr/sor-bakalim/orta-seviyeden-seniora-gecerken-beklenen-daha-genis-etki-yi-nasil-gosteririm.md

### Loglarımda WARN ile ERROR seviyelerini ne zaman kullanacağıma dair net bir kural nasıl belirlerim?

- Bir satır gece 3'te birini uyandırmayı gerektiriyorsa ERROR, gerektirmiyorsa WARN yazın; hatayı sınırında bir kez loglayıp alert'i ERROR oranına bağlayın.
- Soran: Can
- Cevaplandı: 2026-07-24
- Etiketler: #Observability, #Loglama
- https://www.muhammetsafak.com.tr/sor-bakalim/loglarimda-warn-ile-error-seviyelerini-ne-zaman-kullanacagima-dair-net-bir/
- Markdown: https://www.muhammetsafak.com.tr/sor-bakalim/loglarimda-warn-ile-error-seviyelerini-ne-zaman-kullanacagima-dair-net-bir.md

### Container'daki healthcheck'i Dockerfile'a mı yazmalıyım yoksa Kubernetes probe'larına mı bırakmalıyım?

- Readiness, liveness ve startup'ı Kubernetes probe'ları olarak tanımlayın; HEALTHCHECK'i yalnız imaj Compose'da da koşuyorsa tutup aynı endpoint'e bağlayın.
- Soran: Elif
- Cevaplandı: 2026-07-21
- Etiketler: #Docker, #Kubernetes, #Güvenilirlik
- https://www.muhammetsafak.com.tr/sor-bakalim/containerdaki-healthchecki-dockerfilea-mi-yazmaliyim-yoksa-kubernetes-probelarina-mi-birakmaliyim/
- Markdown: https://www.muhammetsafak.com.tr/sor-bakalim/containerdaki-healthchecki-dockerfilea-mi-yazmaliyim-yoksa-kubernetes-probelarina-mi-birakmaliyim.md

### Public API'mde bir endpoint'i kullanımdan kaldırırken sunset sürecini nasıl yönetmeliyim?

- Kullanımı partner bazında ölçün, her yanıta Sunset ve Deprecation başlığı koyun, tarihli sunset duyurup brownout yapın, kullanım sıfıra yaklaşınca kesin.
- Soran: Burak
- Cevaplandı: 2026-07-17
- Etiketler: #API, #API Tasarımı
- https://www.muhammetsafak.com.tr/sor-bakalim/public-apimde-bir-endpointi-kullanimdan-kaldirirken-sunset-surecini-nasil-yonetmeliyim/
- Markdown: https://www.muhammetsafak.com.tr/sor-bakalim/public-apimde-bir-endpointi-kullanimdan-kaldirirken-sunset-surecini-nasil-yonetmeliyim.md

### Sürekli güncellenen bir sessions tablosunda staging'de Index Scan alan sorgu production'da neden Seq Scan'e düşüyor, EXPLAIN ile nasıl teşhis ederim?

- Production'da EXPLAIN (ANALYZE, BUFFERS) çekip tabloyu ANALYZE edin ve n_dead_tup'a bakın; sessions için autovacuum'u sıkılaştırıp partial index ekleyin.
- Soran: Zeynep
- Cevaplandı: 2026-07-14
- Etiketler: #PostgreSQL, #Performans
- https://www.muhammetsafak.com.tr/sor-bakalim/surekli-guncellenen-bir-sessions-tablosunda-stagingde-index-scan-alan-sorgu-productionda/
- Markdown: https://www.muhammetsafak.com.tr/sor-bakalim/surekli-guncellenen-bir-sessions-tablosunda-stagingde-index-scan-alan-sorgu-productionda.md

### Goroutine sızıntılarını uzun süre çalışan bir Go servisinde nasıl tespit edip önlerim?

- NumGoroutine()'i dışa açıp zirvede pprof goroutine dökümü alın, binlerce kopyalı park etmiş stack'in spawn noktasını ctx.Done()'a uydurun, goleak ekleyin.
- Soran: Kerem
- Cevaplandı: 2026-07-10
- Etiketler: #Go, #Concurrency
- https://www.muhammetsafak.com.tr/sor-bakalim/goroutine-sizintilarini-uzun-sure-calisan-bir-go-servisinde-nasil-tespit-edip/
- Markdown: https://www.muhammetsafak.com.tr/sor-bakalim/goroutine-sizintilarini-uzun-sure-calisan-bir-go-servisinde-nasil-tespit-edip.md

### Eloquent'te N+1'i erken yakalamak için Model::preventLazyLoading'i yalnızca lokalde mi yoksa production'da da mı açmalıyım?

- Lokal ve CI'da tam katı (throw) çalıştırın; production'da ayarı açık tutup ihlali handleLazyLoadingViolationUsing ile isteği çökertmeden log'layın.
- Soran: Ayşe
- Cevaplandı: 2026-07-07
- Etiketler: #Laravel, #Eloquent, #Performans
- https://www.muhammetsafak.com.tr/sor-bakalim/eloquentte-n-1i-erken-yakalamak-icin-model-preventlazyloadingi-yalnizca-lokalde-mi/
- Markdown: https://www.muhammetsafak.com.tr/sor-bakalim/eloquentte-n-1i-erken-yakalamak-icin-model-preventlazyloadingi-yalnizca-lokalde-mi.md

### PHP durum sabitlerimi backed enum'a taşımak kod tabanıma ne kazandırır, neyi zorlaştırır?

- Aynı integer değerleriyle backed enum ekleyin, sınırlarda tryFrom() kullanın ve eski sabitleri deprecated alias tutup çağrıları kademeli taşıyın.
- Soran: Mert
- Cevaplandı: 2026-07-03
- Etiketler: #PHP, #Refactoring
- https://www.muhammetsafak.com.tr/sor-bakalim/php-durum-sabitlerimi-backed-enuma-tasimak-kod-tabanima-ne-kazandirir-neyi/
- Markdown: https://www.muhammetsafak.com.tr/sor-bakalim/php-durum-sabitlerimi-backed-enuma-tasimak-kod-tabanima-ne-kazandirir-neyi.md

### API sunucumu Cloudflare Tunnel arkasına alıp 443'ü internete kapatmalı mıyım?

- Tünel sağlam bir desen ama tek yol bağımlılığıdır; mevcut Caddy kurulumunda kalıp origin'i Cloudflare IP'lerine kilitleyin ve origin pulls ekleyin.
- Soran: Gazi
- Cevaplandı: 2026-06-13
- Etiketler: #Altyapı, #Cloudflare, #Laravel
- https://www.muhammetsafak.com.tr/sor-bakalim/api-sunucusunu-cloudflare-tunnel-arkasina-mi-almali/
- Markdown: https://www.muhammetsafak.com.tr/sor-bakalim/api-sunucusunu-cloudflare-tunnel-arkasina-mi-almali.md

### Hata oranı artınca otomatik rollback yapan (self-healing) deploy altyapısını nasıl tasarlarım?

- Yeni sürümü canary ağırlığında bir bake süresi boyunca 5xx ve latency eşiğine karşı ölçün; eşik aşılırsa son kararlı sürüme dönüp ekibi yalnızca uyarın.
- Soran: Emir
- Cevaplandı: 2026-06-13
- Etiketler: #CI/CD, #Dayanıklılık, #Observability
- https://www.muhammetsafak.com.tr/sor-bakalim/hata-artisinda-otomatik-rollback-ve-kendi-kendini-iyilestiren-deploy/
- Markdown: https://www.muhammetsafak.com.tr/sor-bakalim/hata-artisinda-otomatik-rollback-ve-kendi-kendini-iyilestiren-deploy.md

### Fintek API'si için Canary mi, Blue-Green deployment mı?

- Rutin sürümlerde Canary'yi varsayılan yapın, instant rollback istediğiniz büyük cutover'lara Blue-Green'i saklayın; ikisi de geriye uyumlu şema şart koşar.
- Soran: Bora
- Cevaplandı: 2026-06-12
- Etiketler: #CI/CD, #Dayanıklılık
- https://www.muhammetsafak.com.tr/sor-bakalim/canary-mi-blue-green-mi-fintek-api-icin-deploy-stratejisi/
- Markdown: https://www.muhammetsafak.com.tr/sor-bakalim/canary-mi-blue-green-mi-fintek-api-icin-deploy-stratejisi.md

### CI/CD'de OIDC ve IAM Role ile şifresiz (secretless) AWS erişimini nasıl kurarım?

- GitHub Secrets'taki uzun ömürlü AWS anahtarlarını silip repo ve branch'e scope'lu bir IAM role'ü OIDC ile üstlenin; bulut dışı secret'ı runtime'da çekin.
- Soran: Doruk
- Cevaplandı: 2026-06-12
- Etiketler: #CI/CD, #Güvenlik, #Altyapı
- https://www.muhammetsafak.com.tr/sor-bakalim/ci-cd-de-secret-yonetimi-ve-oidc-ile-sifresiz-erisim/
- Markdown: https://www.muhammetsafak.com.tr/sor-bakalim/ci-cd-de-secret-yonetimi-ve-oidc-ile-sifresiz-erisim.md

### CI/CD'de veritabanı göçlerini (migrations) güvenli nasıl çalıştırırım?

- Kolonu nullable ekleyip backfill'i ayrı throttle'lı bir adıma alın, migration'ı deploy'dan ayrı bir aşamada koşturun, eskiyi sonraki release'te düşürün.
- Soran: Melih
- Cevaplandı: 2026-06-12
- Etiketler: #CI/CD, #Veritabanı, #Laravel
- https://www.muhammetsafak.com.tr/sor-bakalim/ci-cd-de-veritabani-goclerini-guvenli-calistirmak/
- Markdown: https://www.muhammetsafak.com.tr/sor-bakalim/ci-cd-de-veritabani-goclerini-guvenli-calistirmak.md

### DeployerPHP zero-downtime deploy'da OPcache'ten gelen 500 hatalarını nasıl engellerim?

- Symlink'i çevirdikten sonra PHP-FPM'i graceful reload edin (restart değil); Octane'deyseniz worker'lar için octane:reload şart, opcache_reset isteğe bağlı.
- Soran: Şükrü
- Cevaplandı: 2026-06-12
- Etiketler: #CI/CD, #Laravel
- https://www.muhammetsafak.com.tr/sor-bakalim/deployerphp-ile-sifir-kesinti-deploy-ve-opcache-temizligi/
- Markdown: https://www.muhammetsafak.com.tr/sor-bakalim/deployerphp-ile-sifir-kesinti-deploy-ve-opcache-temizligi.md

### Docker imaj boyutunu multi-stage build ve distroless ile nasıl küçültürüm?

- Build araçlarını builder aşamasında bırakın: final aşama Go için distroless ya da scratch, PHP için fpm-alpine olsun; container'ı non-root çalıştırın.
- Soran: Korhan
- Cevaplandı: 2026-06-12
- Etiketler: #CI/CD, #Docker, #Altyapı
- https://www.muhammetsafak.com.tr/sor-bakalim/docker-imaj-boyutunu-multi-stage-ve-distroless-ile-kucultmek/
- Markdown: https://www.muhammetsafak.com.tr/sor-bakalim/docker-imaj-boyutunu-multi-stage-ve-distroless-ile-kucultmek.md

### Gitflow'dan Trunk-Based'e geçerken feature flag mimarisini nasıl konumlandırırım?

- Uzun ömürlü dalları kaldırıp değişiklikleri küçük parçalar hâlinde main'e alın, bitmemiş işi kapalı bir flag arkasında tutun ve biten flag'i temizleyin.
- Soran: Tarık
- Cevaplandı: 2026-06-12
- Etiketler: #CI/CD, #Git, #Mimari
- https://www.muhammetsafak.com.tr/sor-bakalim/gitflow-mu-trunk-based-mi-ve-feature-flag-mimarisi/
- Markdown: https://www.muhammetsafak.com.tr/sor-bakalim/gitflow-mu-trunk-based-mi-ve-feature-flag-mimarisi.md

### Go CLI aracını GoReleaser ve Homebrew ile çoklu platforma nasıl dağıtırım?

- Tag push'unda tetiklenen tek bir workflow cross-compile edip Release'i yayımlasın, homebrew_casks: bloğu tap'i güncellesin; tap için ayrı bir PAT şart.
- Soran: Devrim
- Cevaplandı: 2026-06-12
- Etiketler: #CI/CD, #Go
- https://www.muhammetsafak.com.tr/sor-bakalim/go-cli-aracini-goreleaser-ve-homebrew-ile-dagitmak/
- Markdown: https://www.muhammetsafak.com.tr/sor-bakalim/go-cli-aracini-goreleaser-ve-homebrew-ile-dagitmak.md

### Hassas finansal veriyi şifrelerken anahtarı .env'de tutmak neden riskli — KMS/Vault ne sağlar?

- Anahtarı .env'den çıkarıp KMS ya da Vault'ta tutun ve envelope encryption kullanın; kimlik ve kart verisinde mümkünse tokenization tercih edin.
- Soran: Çağrı
- Cevaplandı: 2026-06-12
- Etiketler: #Veritabanı, #Güvenlik, #Altyapı
- https://www.muhammetsafak.com.tr/sor-bakalim/hassas-finansal-veriyi-sifrelemek-ve-anahtar-yonetimi-kms/
- Markdown: https://www.muhammetsafak.com.tr/sor-bakalim/hassas-finansal-veriyi-sifrelemek-ve-anahtar-yonetimi-kms.md

### Self-hosted CI/CD runner'larını nasıl izole eder, her çalışmadan sonra temizlenen (ephemeral) ortamı nasıl kurarım?

- Runner'ı kaydol-çalış-yok ol modeline geçirip job'ları unprivileged çalıştırın; Docker soketini vermeyin ve fork PR'larını bu runner'da hiç koşturmayın.
- Soran: Cüneyt
- Cevaplandı: 2026-06-12
- Etiketler: #CI/CD, #Güvenlik, #Docker
- https://www.muhammetsafak.com.tr/sor-bakalim/self-hosted-ci-cd-runner-izolasyonu-ve-ephemeral-ortam/
- Markdown: https://www.muhammetsafak.com.tr/sor-bakalim/self-hosted-ci-cd-runner-izolasyonu-ve-ephemeral-ortam.md

### Terraform state'i S3 + DynamoDB locking ile nasıl güvenli yönetirim?

- Versiyonlu, şifreli bir S3 backend'e geçip DynamoDB lock tablosu ekleyin (deprecated ama çalışır), state'i ortam başına ayırın, apply'ı CI'dan koşturun.
- Soran: Nadir
- Cevaplandı: 2026-06-12
- Etiketler: #CI/CD, #Altyapı
- https://www.muhammetsafak.com.tr/sor-bakalim/terraform-state-yonetimi-s3-ve-dynamodb-ile-locking/
- Markdown: https://www.muhammetsafak.com.tr/sor-bakalim/terraform-state-yonetimi-s3-ve-dynamodb-ile-locking.md

### WAL arşivleme ve PITR ile felaketten saniyeler öncesine nasıl dönerim?

- Periyodik base backup alıp WAL'ı sürekli S3'e arşivleyin, recovery_target_time ile hatalı ifadenin saniyeler öncesine dönün ve restore'u prova edin.
- Soran: Yusuf
- Cevaplandı: 2026-06-12
- Etiketler: #Veritabanı, #PostgreSQL, #Dayanıklılık
- https://www.muhammetsafak.com.tr/sor-bakalim/veritabani-pitr-ve-wal-arsivleme-ile-felaket-oncesine-donmek/
- Markdown: https://www.muhammetsafak.com.tr/sor-bakalim/veritabani-pitr-ve-wal-arsivleme-ile-felaket-oncesine-donmek.md

### Canlı tabloda dual-write ile sıfır kayıplı şema geçişini nasıl koordine ederim?

- 20M satırda bloklayan `ALTER TABLE` yerine expand/contract yürütün: kolonları nullable ekleyin, dual-write edin, throttled batch'lerle backfill edin.
- Soran: Taylan
- Cevaplandı: 2026-06-11
- Etiketler: #Veritabanı, #PostgreSQL, #CI/CD
- https://www.muhammetsafak.com.tr/sor-bakalim/canli-tabloda-dual-write-ile-sifir-kayipli-sema-gecisi/
- Markdown: https://www.muhammetsafak.com.tr/sor-bakalim/canli-tabloda-dual-write-ile-sifir-kayipli-sema-gecisi.md

### Zaman serisi verisi için TimescaleDB mi, InfluxDB mu?

- Günde 100M satır düz bir tabloda patlar: hypertable ile zamana göre parçalayın, ortalamaları continuous aggregate'e alın, eski chunk'ları sıkıştırın.
- Soran: Uğur
- Cevaplandı: 2026-06-11
- Etiketler: #Veritabanı, #PostgreSQL, #Ölçekleme
- https://www.muhammetsafak.com.tr/sor-bakalim/zaman-serisi-verisi-timescaledb-mi-influxdb-mu/
- Markdown: https://www.muhammetsafak.com.tr/sor-bakalim/zaman-serisi-verisi-timescaledb-mi-influxdb-mu.md

### Redis'te canlı leaderboard için neden Sorted Set kullanmalıyım?

- Skorları String'de tutup uygulamada sıralamak yerine Sorted Set kullanın: `ZADD` O(log N) günceller, `ZREVRANGE 0 99` ilk 100'ü zaten sıralı döner.
- Soran: Sarp
- Cevaplandı: 2026-06-10
- Etiketler: #Veritabanı, #Redis, #Performans
- https://www.muhammetsafak.com.tr/sor-bakalim/redis-veri-tipleri-leaderboard-icin-sorted-set/
- Markdown: https://www.muhammetsafak.com.tr/sor-bakalim/redis-veri-tipleri-leaderboard-icin-sorted-set.md

### CQRS'i ne zaman uygulamalı ve okuma/yazma modellerini nasıl senkronlamalıyım?

- Raporlamayı bir read-replica'ya taşıyın, tam CQRS'e ancak sorgu şekilleri tek şemaya sığmadığında geçin ve okuma modelini outbox event'leriyle besleyin.
- Soran: Rüzgar
- Cevaplandı: 2026-06-09
- Etiketler: #Veritabanı, #Mimari, #ElasticSearch
- https://www.muhammetsafak.com.tr/sor-bakalim/cqrs-ne-zaman-uygulanir-ve-okuma-yazma-senkronizasyonu/
- Markdown: https://www.muhammetsafak.com.tr/sor-bakalim/cqrs-ne-zaman-uygulanir-ve-okuma-yazma-senkronizasyonu.md

### Bakiye güncellemede race condition: Pessimistic Lock mı, Redlock mı?

- Parayı DB'nin garantisinde tutun: atomik koşullu `UPDATE ... WHERE balance >= 40` ya da `SELECT ... FOR UPDATE` kullanın, Redlock'u DB dışına bırakın.
- Soran: Polat
- Cevaplandı: 2026-06-08
- Etiketler: #Veritabanı, #Kuyruk, #Redis
- https://www.muhammetsafak.com.tr/sor-bakalim/bakiye-guncellemede-race-condition-pessimistic-lock-mu-redlock-mu/
- Markdown: https://www.muhammetsafak.com.tr/sor-bakalim/bakiye-guncellemede-race-condition-pessimistic-lock-mu-redlock-mu.md

### Esnek ürün nitelikleri için NoSQL mu, PostgreSQL mi seçmeliyim?

- İlişkisel çekirdeği (ürün, fiyat, sipariş) PostgreSQL'de tutup değişken nitelikleri GIN index'li tek bir `JSONB` kolonuna koyun; raporlama bölmeye karşı.
- Soran: Halil
- Cevaplandı: 2026-06-08
- Etiketler: #Veritabanı, #Mimari, #PostgreSQL
- https://www.muhammetsafak.com.tr/sor-bakalim/esnek-urun-nitelikleri-icin-nosql-mu-postgresql-mi/
- Markdown: https://www.muhammetsafak.com.tr/sor-bakalim/esnek-urun-nitelikleri-icin-nosql-mu-postgresql-mi.md

### Kuyrukta poison pill (zehirli mesaj) ve Dead Letter Queue'yu nasıl yönetirim?

- İşe `tries` ve `backoff` verin: sınır dolunca Laravel işi `failed_jobs`'a taşır, `JobFailed` listener'ı alert eder, düzelen işi `queue:retry` geri oynatır.
- Soran: Gökhan
- Cevaplandı: 2026-06-07
- Etiketler: #Dayanıklılık, #Kuyruk, #Laravel
- https://www.muhammetsafak.com.tr/sor-bakalim/kuyrukta-poison-pill-ve-dead-letter-queue-yonetimi/
- Markdown: https://www.muhammetsafak.com.tr/sor-bakalim/kuyrukta-poison-pill-ve-dead-letter-queue-yonetimi.md

### Health check tasarımı: Liveness ve Readiness ayrımını nasıl yaparım?

- Liveness'ı bağımlılıksız tutun, bağımlılıkları readiness'ta cache'li yoklayın: liveness fail pod'u restart eder, readiness fail yalnız trafiği keser.
- Soran: Eren
- Cevaplandı: 2026-06-06
- Etiketler: #Dayanıklılık, #Altyapı, #Kubernetes
- https://www.muhammetsafak.com.tr/sor-bakalim/health-check-tasarimi-liveness-ve-readiness-ayrimi/
- Markdown: https://www.muhammetsafak.com.tr/sor-bakalim/health-check-tasarimi-liveness-ve-readiness-ayrimi.md

### PostgreSQL tablo partitioning'e sıfır kesinti ile nasıl geçerim?

- `created_at` üzerinde aylık RANGE declarative partitioning kurun, geçmişi batch'lerle backfill edip isimleri tek transaction'da takaslayın.
- Soran: Furkan
- Cevaplandı: 2026-06-06
- Etiketler: #Veritabanı, #PostgreSQL, #Ölçekleme
- https://www.muhammetsafak.com.tr/sor-bakalim/postgresql-tablo-partitioning-sifir-kesinti-ile-gecis/
- Markdown: https://www.muhammetsafak.com.tr/sor-bakalim/postgresql-tablo-partitioning-sifir-kesinti-ile-gecis.md

### Veritabanı deadlock'larını önlemek için hangi kurallara dikkat etmeliyim?

- Kilitleri tek bir global sırada, artan PK gibi, alın; transaction'ı kısa ve dar tutun, hedefli `FOR UPDATE` kullanın, kalanı backoff ile retry edin.
- Soran: Sinan
- Cevaplandı: 2026-06-05
- Etiketler: #Dayanıklılık, #Veritabanı, #PostgreSQL
- https://www.muhammetsafak.com.tr/sor-bakalim/veritabani-deadlock-tespiti-ve-onleme-kurallari/
- Markdown: https://www.muhammetsafak.com.tr/sor-bakalim/veritabani-deadlock-tespiti-ve-onleme-kurallari.md

### Go HTTP sunucusunda panic'i recovery middleware ile nasıl yönetirim?

- Zincirin en dışına `defer recover()` koyun, stack'i request id ile loglayıp generic 500 dönün, metrik basın, her goroutine'e kendi recover'ını verin.
- Soran: Oğuz
- Cevaplandı: 2026-06-04
- Etiketler: #Dayanıklılık, #Go
- https://www.muhammetsafak.com.tr/sor-bakalim/go-da-panic-yonetimi-ve-recovery-middleware/
- Markdown: https://www.muhammetsafak.com.tr/sor-bakalim/go-da-panic-yonetimi-ve-recovery-middleware.md

### Felaket kurtarma: RTO ve RPO'ya göre aktif-pasif senaryoyu nasıl kurgularım?

- RPO 5 dakika sürekli cross-region replikasyon ve PITR, RTO 30 dakika ise IaC ile hazır bekleyen sıcak yedek ve Route 53 failover demek; düzenli prova edin.
- Soran: Levent
- Cevaplandı: 2026-06-03
- Etiketler: #Dayanıklılık, #Altyapı, #Veritabanı
- https://www.muhammetsafak.com.tr/sor-bakalim/felaket-kurtarma-rto-rpo-ve-aktif-pasif-senaryo/
- Markdown: https://www.muhammetsafak.com.tr/sor-bakalim/felaket-kurtarma-rto-rpo-ve-aktif-pasif-senaryo.md

### Log storm ve disk dolma krizini nasıl önlerim?

- Tekrarlı logu uygulamada sayaçla tek satıra indirin, retry'a backoff koyun, logrotate'e boyut ve sayı sınırı verin, `/var/log`'u kök diskten ayırın.
- Soran: Serkan
- Cevaplandı: 2026-06-02
- Etiketler: #Dayanıklılık, #Observability, #Altyapı
- https://www.muhammetsafak.com.tr/sor-bakalim/log-storm-ve-disk-dolma-krizini-onlemek/
- Markdown: https://www.muhammetsafak.com.tr/sor-bakalim/log-storm-ve-disk-dolma-krizini-onlemek.md

### Dağıtık brute force ve DDoS'a karşı akıllı rate limiting'i nasıl kurarım?

- IP limiti dönen proxy'lere yenilir: Redis sliding-window'u hesap + IP + ASN'de anahtarlayın, hesap kilidi ekleyin, volumetrik seli edge'e bırakın.
- Soran: Murat
- Cevaplandı: 2026-06-01
- Etiketler: #Dayanıklılık, #Güvenlik, #Redis
- https://www.muhammetsafak.com.tr/sor-bakalim/dagitik-brute-force-ve-ddos-icin-akilli-rate-limiting/
- Markdown: https://www.muhammetsafak.com.tr/sor-bakalim/dagitik-brute-force-ve-ddos-icin-akilli-rate-limiting.md

### Graceful degradation: kritik olmayan servisleri yük altında nasıl izole ederim?

- Kritik akışı (gez, sepet, ödeme) lüks bileşenlerden ayırın, lüksleri kısa timeout'lu feature flag arkasına koyun, kill-switch'i kriz gelmeden prova edin.
- Soran: Hakan
- Cevaplandı: 2026-05-31
- Etiketler: #Dayanıklılık, #Mimari, #Ölçekleme
- https://www.muhammetsafak.com.tr/sor-bakalim/graceful-degradation-kritik-olmayan-servisleri-izole-etmek/
- Markdown: https://www.muhammetsafak.com.tr/sor-bakalim/graceful-degradation-kritik-olmayan-servisleri-izole-etmek.md

### Dağıtık sistemde Saga Pattern ile eventual consistency'yi nasıl tasarlarım?

- Tek atomik işlemi telafi aksiyonlu yerel işlemlere bölün: adımları orchestrator kuyruktan sürsün, her adım idempotent olsun, olaylar outbox'tan çıksın.
- Soran: İpek
- Cevaplandı: 2026-05-30
- Etiketler: #Dayanıklılık, #Mikroservis, #Kuyruk
- https://www.muhammetsafak.com.tr/sor-bakalim/dagitik-sistemde-saga-pattern-ile-eventual-consistency/
- Markdown: https://www.muhammetsafak.com.tr/sor-bakalim/dagitik-sistemde-saga-pattern-ile-eventual-consistency.md

### PostgreSQL split-brain'i quorum ve mutabakat ile nasıl önlerim?

- Failover'ı elle yazmayın: Patroni + etcd ile terfiyi quorum'a bağlayın, çoğunluktan kopan eski primary fencing ile kendini replica'ya düşürsün.
- Soran: Volkan
- Cevaplandı: 2026-05-29
- Etiketler: #Dayanıklılık, #PostgreSQL, #Veritabanı
- https://www.muhammetsafak.com.tr/sor-bakalim/postgresql-split-brain-quorum-ve-mutabakat-ile-onlemek/
- Markdown: https://www.muhammetsafak.com.tr/sor-bakalim/postgresql-split-brain-quorum-ve-mutabakat-ile-onlemek.md

### Üçüncü parti API bağımlılığında Circuit Breaker'ı nasıl kurarım?

- Breaker tek başına yetmez: `connect_timeout` ve `timeout`'u 800ms-2s'ye çekin, bağımlılığı bulkhead ile izole edin, cache'li bir fallback tanımlayın.
- Soran: Tunç
- Cevaplandı: 2026-05-28
- Etiketler: #Dayanıklılık, #Mimari, #Laravel
- https://www.muhammetsafak.com.tr/sor-bakalim/ucuncu-parti-api-icin-circuit-breaker-deseni/
- Markdown: https://www.muhammetsafak.com.tr/sor-bakalim/ucuncu-parti-api-icin-circuit-breaker-deseni.md

### CDN'de asset sürümleme: hash'leme ve cache stratejisini nasıl kurarım?

- Query-string busting'i bırakın: asset'i content-hash'li adla `immutable` cache'leyin, HTML'i kısa ömürlü tutun, canlıya geçmeden önce yükleyin.
- Soran: Aslı
- Cevaplandı: 2026-05-27
- Etiketler: #Performans, #CI/CD, #Altyapı
- https://www.muhammetsafak.com.tr/sor-bakalim/cdn-asset-surumleme-hashleme-ve-cache-stratejisi/
- Markdown: https://www.muhammetsafak.com.tr/sor-bakalim/cdn-asset-surumleme-hashleme-ve-cache-stratejisi.md

### Elasticsearch'te 'search-as-you-type' performansını edge n-gram ile nasıl optimize ederim?

- Autocomplete'te wildcard kullanmayın; önekleri edge_ngram ile yazma anında üretip arama tarafında standart analyzer bırakın, sorgu term lookup'a insin.
- Soran: Efe
- Cevaplandı: 2026-05-26
- Etiketler: #Performans, #ElasticSearch, #Veritabanı
- https://www.muhammetsafak.com.tr/sor-bakalim/elasticsearch-anlik-arama-edge-ngram-ile-optimizasyon/
- Markdown: https://www.muhammetsafak.com.tr/sor-bakalim/elasticsearch-anlik-arama-edge-ngram-ile-optimizasyon.md

### 2-5 GB dosyaları PHP belleğini şişirmeden stream ile nasıl indirtirim?

- 2-5 GB dosyayı presigned URL ya da X-Accel-Redirect ile PHP'nin dışından servis edin; zorundaysanız readStream ile chunk'layıp buffering'i kapatın.
- Soran: Barış
- Cevaplandı: 2026-05-25
- Etiketler: #Performans, #Laravel, #Altyapı
- https://www.muhammetsafak.com.tr/sor-bakalim/buyuk-dosyalari-php-bellegini-sismeden-stream-ile-indirmek/
- Markdown: https://www.muhammetsafak.com.tr/sor-bakalim/buyuk-dosyalari-php-bellegini-sismeden-stream-ile-indirmek.md

### HTTP/2 ve HTTP/3 (QUIC) API performansını nasıl etkiler?

- HTTP/2'yi hemen açın; çoklama ekran başına 4-5 isteği tek bağlantıya indirir, mobil kitle ağırlıktaysa HTTP/3 ekleyin ve domain sharding'i kaldırın.
- Soran: Kerem
- Cevaplandı: 2026-05-24
- Etiketler: #Performans, #Altyapı, #Ağ
- https://www.muhammetsafak.com.tr/sor-bakalim/http-2-ve-http-3-quic-api-performansina-etkisi/
- Markdown: https://www.muhammetsafak.com.tr/sor-bakalim/http-2-ve-http-3-quic-api-performansina-etkisi.md

### PgBouncer'da Session/Transaction/Statement modlarından hangisini seçmeliyim?

- Web filosunda Transaction modunu seçin; bedeli protokol seviyesi prepared statement'lardır, onları kapatın ya da PgBouncer 1.21+ desteğini açın.
- Soran: Pelin
- Cevaplandı: 2026-05-23
- Etiketler: #Performans, #PostgreSQL, #Veritabanı
- https://www.muhammetsafak.com.tr/sor-bakalim/pgbouncer-session-transaction-statement-modu-ve-prepared-statement/
- Markdown: https://www.muhammetsafak.com.tr/sor-bakalim/pgbouncer-session-transaction-statement-modu-ve-prepared-statement.md

### Yeni bir projeye mikroservislerle mi başlamalıyım?

- Sıfırdan başlayan çoğu üründe modüler monolitle başlayıp sınırları kodda zorlayın; bir modülü ancak ayrı ölçeklenmesi gerektiğinde servise terfi ettirin.
- Soran: Emre
- Cevaplandı: 2026-05-22
- Etiketler: #Mimari, #Mikroservis
- https://www.muhammetsafak.com.tr/sor-bakalim/yeni-projeye-mikroservisle-mi-baslamali/
- Markdown: https://www.muhammetsafak.com.tr/sor-bakalim/yeni-projeye-mikroservisle-mi-baslamali.md

### Autoscaling scale-in sırasında SIGTERM ile graceful shutdown'ı nasıl sağlarım?

- SIGTERM'de önce load balancer'dan çıkıp yeni isteği kesin, açık işleri server.Shutdown(ctx) deadline'ında bitirin ve grace süresini drain'e hizalayın.
- Soran: Ozan
- Cevaplandı: 2026-05-21
- Etiketler: #Performans, #Ölçekleme, #Go
- https://www.muhammetsafak.com.tr/sor-bakalim/autoscaling-sirasinda-sigterm-ile-graceful-shutdown/
- Markdown: https://www.muhammetsafak.com.tr/sor-bakalim/autoscaling-sirasinda-sigterm-ile-graceful-shutdown.md

### PostgreSQL'de composite index kolon sırasını nasıl seçerim?

- Tek bir (user_id, status, created_at DESC) composite index kurun: eşitlik kolonları başa, sıralama kolonu sona; kapsanan tekli indeksleri silin.
- Soran: Doğa
- Cevaplandı: 2026-05-20
- Etiketler: #Performans, #PostgreSQL, #Veritabanı
- https://www.muhammetsafak.com.tr/sor-bakalim/postgresql-composite-index-kolon-sirasi-nasil-secilir/
- Markdown: https://www.muhammetsafak.com.tr/sor-bakalim/postgresql-composite-index-kolon-sirasi-nasil-secilir.md

### Redis cache stampede'i (thundering herd) nasıl önlerim — mutex lock mı, XFetch mi?

- Çoğu durumda single-flight lock ve TTL jitter yeter; XFetch'i recompute gerçekten pahalıyken açın ve her iki hâlde stale-while-revalidate ekleyin.
- Soran: Cem
- Cevaplandı: 2026-05-19
- Etiketler: #Performans, #Redis, #Önbellek
- https://www.muhammetsafak.com.tr/sor-bakalim/redis-cache-stampede-mutex-lock-mu-xfetch-mi/
- Markdown: https://www.muhammetsafak.com.tr/sor-bakalim/redis-cache-stampede-mutex-lock-mu-xfetch-mi.md

### Go'da GC baskısını sync.Pool ve escape analizi ile nasıl azaltırım?

- Duraklamaların ardındaki düşman tahsis hızıdır: pprof ile en çok tahsis edeni öldürün, hot path'i sync.Pool ile havuzlayın, GOGC ayarını en sona bırakın.
- Soran: Arda
- Cevaplandı: 2026-05-17
- Etiketler: #Performans, #Go
- https://www.muhammetsafak.com.tr/sor-bakalim/go-da-gc-baskisini-sync-pool-ve-escape-analizi-ile-azaltmak/
- Markdown: https://www.muhammetsafak.com.tr/sor-bakalim/go-da-gc-baskisini-sync-pool-ve-escape-analizi-ile-azaltmak.md

### Laravel Octane (FrankenPHP) altında bellek sızıntısını nasıl debug ederim?

- Önce memory_get_usage eğrisini çıkarın, service provider'ları bisect edip suçluyu daraltın, stateful singleton'ları Octane hook'larında sıfırlayın.
- Soran: Yiğit
- Cevaplandı: 2026-05-16
- Etiketler: #Performans, #Laravel, #Laravel Octane
- https://www.muhammetsafak.com.tr/sor-bakalim/laravel-octane-frankenphp-bellek-sizintisi-nasil-debug-edilir/
- Markdown: https://www.muhammetsafak.com.tr/sor-bakalim/laravel-octane-frankenphp-bellek-sizintisi-nasil-debug-edilir.md

### Multi-tenant SaaS'ta veritabanı izolasyonu: ayrı DB mi, şema mı, tenant_id mi?

- 10.000 tenant'ta database-per-tenant operasyonel olarak ölçeklenmez; her tabloda tenant_id tutup izolasyonu Postgres Row-Level Security'ye gömün.
- Soran: Berk
- Cevaplandı: 2026-05-15
- Etiketler: #Mimari, #Veritabanı, #Ölçekleme
- https://www.muhammetsafak.com.tr/sor-bakalim/multi-tenant-saas-veritabani-izolasyon-stratejisi/
- Markdown: https://www.muhammetsafak.com.tr/sor-bakalim/multi-tenant-saas-veritabani-izolasyon-stratejisi.md

### Ödeme webhook'u aynı bildirimi tekrar gönderiyor; idempotency'i nasıl kurarım?

- HMAC'i ham gövdede constant-time doğrulayın, hızlı 200 dönüp işi kuyruğa alın ve tekilliği event_id üzerindeki UNIQUE constraint'e yaptırın.
- Soran: Sıla
- Cevaplandı: 2026-05-14
- Etiketler: #Mimari, #Güvenlik, #API
- https://www.muhammetsafak.com.tr/sor-bakalim/webhook-mukerrer-bildirim-idempotency-ve-hmac/
- Markdown: https://www.muhammetsafak.com.tr/sor-bakalim/webhook-mukerrer-bildirim-idempotency-ve-hmac.md

### PHP monolitten ödeme modülünü Strangler Fig ile nasıl koparırım?

- Ödemeyi gateway'de 5/20/100 ağırlıkla kaydırıp önce shadow'da doğrulayın; asıl iş tabloları ayırmak, arkasında anti-corruption layer ve outbox durur.
- Soran: Onur
- Cevaplandı: 2026-05-12
- Etiketler: #Mimari, #Mikroservis, #Go
- https://www.muhammetsafak.com.tr/sor-bakalim/monolitten-mikroservise-strangler-fig-ile-kademeli-gecis/
- Markdown: https://www.muhammetsafak.com.tr/sor-bakalim/monolitten-mikroservise-strangler-fig-ile-kademeli-gecis.md

### Cloudflare Workers + KV ile edge cache kurarsam invalidation'ı nasıl yaparım?

- Fiyat değiştiği an aynı transaction ya da outbox içinde KV'ye write-through yapın veya key'i silin; kısa TTL ve versiyonlu key yalnızca emniyet ağıdır.
- Soran: Tolga
- Cevaplandı: 2026-05-11
- Etiketler: #Altyapı, #Cloudflare, #Önbellek
- https://www.muhammetsafak.com.tr/sor-bakalim/cloudflare-workers-kv-ile-edge-cache-ve-invalidation/
- Markdown: https://www.muhammetsafak.com.tr/sor-bakalim/cloudflare-workers-kv-ile-edge-cache-ve-invalidation.md

### Mikroservislerde dağıtık izlemeyi (OpenTelemetry) nasıl kurarım?

- W3C Trace Context'te standartlaşıp propagation'ı OTel SDK'ya bırakın ve traceparent'ı kuyruk mesajının header'ına koyun; zincir orada kopuyor.
- Soran: Ece
- Cevaplandı: 2026-05-09
- Etiketler: #Mimari, #Observability, #Mikroservis
- https://www.muhammetsafak.com.tr/sor-bakalim/mikroserviste-dagitik-izleme-opentelemetry-ile-nasil-kurulur/
- Markdown: https://www.muhammetsafak.com.tr/sor-bakalim/mikroserviste-dagitik-izleme-opentelemetry-ile-nasil-kurulur.md

### WireGuard ile Docker ağları çakışıyor; routing'i nasıl stabilize ederim?

- Çakışma runtime hatası değil adresleme planı sorunudur: Docker havuzunu daemon.json'da pinleyin, AllowedIPs'i DB subnet'ine kısın, rotaları kalıcı yapın.
- Soran: Mert
- Cevaplandı: 2026-05-08
- Etiketler: #Altyapı, #Ağ, #Docker
- https://www.muhammetsafak.com.tr/sor-bakalim/wireguard-ile-docker-agi-ip-cakismasi-ve-routing/
- Markdown: https://www.muhammetsafak.com.tr/sor-bakalim/wireguard-ile-docker-agi-ip-cakismasi-ve-routing.md

### LLM sağlayıcısını (Ollama → Bedrock/OpenAI) nasıl soyutlamalıyım?

- Tek bir dar arayüz (complete(prompt, opts)) ve config ile seçilen üç implementasyon kurun; context penceresi, gecikme ve maliyeti config olarak taşıyın.
- Soran: Deniz
- Cevaplandı: 2026-05-06
- Etiketler: #Mimari
- https://www.muhammetsafak.com.tr/sor-bakalim/ollama-dan-uretimde-bedrock-openai-a-gecerken-llm-soyutlamasi/
- Markdown: https://www.muhammetsafak.com.tr/sor-bakalim/ollama-dan-uretimde-bedrock-openai-a-gecerken-llm-soyutlamasi.md

### Yerel diskteki dosyaları S3'e taşırken EFS ara çözüm olur mu?

- EFS'i ara durak yapmayın; Flysystem'in s3 diskine geçip okuma ve yazmayı Storage::disk() üzerinden yapın ve dual-read ile kesintisiz taşıyın.
- Soran: Kaan
- Cevaplandı: 2026-05-05
- Etiketler: #Mimari, #Altyapı, #Ölçekleme
- https://www.muhammetsafak.com.tr/sor-bakalim/yerel-diskten-s3-e-gecerken-efs-ara-cozum-mu/
- Markdown: https://www.muhammetsafak.com.tr/sor-bakalim/yerel-diskten-s3-e-gecerken-efs-ara-cozum-mu.md

### Laravel ve Go servisleri arasında mesaj şeması için Protobuf mu, JSON Schema mı?

- Yoğun Laravel-Go trafiğinde Protobuf ve bir schema registry seçin; JSON Schema'yı hafif trafiğe bırakın ve gevşek array'i sınırda tipli DTO'ya çevirin.
- Soran: Selin
- Cevaplandı: 2026-05-03
- Etiketler: #Mimari, #Mikroservis, #Go
- https://www.muhammetsafak.com.tr/sor-bakalim/laravel-ve-go-arasinda-mesaj-semasi-protobuf-mu-json-schema-mi/
- Markdown: https://www.muhammetsafak.com.tr/sor-bakalim/laravel-ve-go-arasinda-mesaj-semasi-protobuf-mu-json-schema-mi.md

### Logları OpenSearch'e gönderirken Fluent Bit ile arasına Kafka/Redis buffer koymalı mıyım?

- Önce Fluent Bit'in filesystem buffer'ını açın; 40k/s kalıcıysa Kafka'ya geçin, Redis listesini yalnızca kaybını göze aldığınız loglarda kullanın.
- Soran: Burak
- Cevaplandı: 2026-05-02
- Etiketler: #Altyapı, #Observability, #Apache Kafka
- https://www.muhammetsafak.com.tr/sor-bakalim/loglari-opensearch-e-gonderirken-araya-kafka-buffer-koymali-miyim/
- Markdown: https://www.muhammetsafak.com.tr/sor-bakalim/loglari-opensearch-e-gonderirken-araya-kafka-buffer-koymali-miyim.md
