İçeriğe geç
Muhammet Şafak
en

Sor Bakalım

Bana ne istersen sor

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

Bir soru sor

Aklına takılan ne varsa çekinme. Sorular bana ulaşır; uygun olanları cevaplayıp bu sayfada yayınlarım. E-postan kesinlikle yayınlanmaz.

E-postan yalnızca bana ulaşır, hiçbir zaman yayınlanmaz.

Kerem

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

HTTP/2'yi hemen aç — çoklamayla tek ekrandaki 4-5 paralel isteğin tek bağlantıya iner, domain sharding'e gerek kalmaz. Mobil kitle için HTTP/3 (QUIC) asıl kazanç; TCP HOL blocking'i ortadan kaldırır ve handshake'i hızlandırır.

#performans#altyapı#ağ
Pelin

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

Web/mikroservis filosunda Transaction modu — sunucu bağlantısını her transaction sonunda havuza iade eder, en yüksek yeniden kullanımı verir. Bedeli: protokol seviyesi prepared statement'ları ve session state'i bozar. Çözüm: client-side prepared'ı kapat ya da PgBouncer 1.21+ kullan; `default_pool_size`'ı makul tut.

#performans#postgresql#veritabanı
Doğa

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

Bu sorgu için tek bir composite index kur: önce eşitlik kolonları (`user_id`, `status`), sonra ORDER BY kolonu en sona (`created_at DESC`). Böylece index hem filtreyi hem sıralamayı karşılar, Bitmap merge + Sort biter. Üstüne binen tekli indeksleri sil.

#performans#postgresql#veritabanı
Cem

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

Asıl sorun, anahtarın aynı saniyede uçurumdan düşmesi. İki tamamlayıcı çözüm: tek seferlik mutex lock ile yalnızca ilk isteğin DB'ye gitmesi, ve probabilistic early expiration (XFetch) ile sürünün tek ana toplanmaması. TTL'lere jitter ekle, stale-while-revalidate ile kullanıcıyı bekletme. Çoğu durumda single-flight + jitter yeter; XFetch'i recompute pahalıysa kullan.

#performans#redis#cache
Arda

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

GC duraklamaları bir semptom; asıl düşman tahsis hızı. Hot path'te kısa ömürlü buffer/struct'ları `sync.Pool` ile tekrar kullan, escape analizini (`-gcflags=-m`) çalıştırıp heap'e kaçanları stack'te tut. `pprof` ile önce/sonra ölç. `GOGC`/`GOMEMLIMIT` ayarı GC'yi seyrekleştirir ama saniyede 50k tahsisi düzeltmez.

#performans#go
Yiğit

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

Tahmin etme, ölç. Octane'de worker uzun ömürlü olduğu için istekler arasında biriken her şey sızar: büyüyen static cache'ler, request state tutan singleton'lar, her istekte yeniden bağlanan servisler. Önce sızıntıyı bisect ile yakala, sonra stateful tarafı Octane hook'larında sıfırla. `max_requests` çözüm değil, emniyet supabı.

#performans#laravel#octane
Berk

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

10.000 tenant'ta database-per-tenant operasyonel olarak ölçeklenmez (10k migration, 10k pool, 10k backup). Pragmatik cevap: her yerde `tenant_id` olan shared DB + Postgres Row-Level Security ile izolasyonu DB'ye gömmek. ORM scope'u savunma katmanı; whale tenant'ı sonra kendi DB'sine taşıma yolunu açık tut.

#mimari#veritabanı#ölçekleme
Sıla

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

İki ayrı mesele. Kimlik doğrulama: HMAC imzasını RAW body üzerinde constant-time karşılaştır, geçmezse reddet. Idempotency: provider'ın event id'sini UNIQUE constraint ile sakla, transaction içinde check-or-insert yap — bir-kez garantisini app değil DB verir. İmza doğrula → hızlı 200 dön → işi kuyruğa al.

#mimari#güvenlik#laravel

Sitede Ara

Yazı, proje ve sayfalarda arama yapmak için yazmaya başlayın.

Esc ile kapat Pagefind ile güçlendirildi