Kanal tampon boyutu seçimi backpressure sorunlarını gizler mi, nasıl karar vermeliyim?
Kanal kapasitesini worker sayısına yakın tutun, bloklamanın Kafka poll döngüsüne yansımasına izin verin, lag artınca buffer'ı değil worker'ı büyütün.
Sor Bakalım
Yazılım mimarisi, kariyer, PHP, Go ve geliştirme süreçleri üzerine merak ettiklerini sor; cevapları burada herkese açık paylaşıyorum.
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.
Kanal kapasitesini worker sayısına yakın tutun, bloklamanın Kafka poll döngüsüne yansımasına izin verin, lag artınca buffer'ı değil worker'ı büyütün.
3 stabil tip ve gerçek foreign key gerekiyorsa tek tabloda exclusive arc kurun; tip sayısı açık uçluysa saf morph'ta `enforceMorphMap` şarttır.
FPM'de kalıp Guzzle Pool ile başlayın, concurrency'yi 20-50'de sabitleyin; kod tabanı gerçekten async'e evrilirse AMPHP v3, yeniden mimaride Swoole.
Klavyeyi devralma refleksini bastırın; ölçütünüz bugün ne kadar hızlı ship ettiğiniz değil, junior'ın her hafta size biraz daha az ihtiyaç duymasıdır.
API'de RED ile başlayın, worker'da job'ı istek gibi modelleyip yine RED kurun, sonra kuyruk derinliği ve pool doygunluğu için iki tarafa da USE ekleyin.
`CMD`'yi exec form'a çevirin ve `os.Interrupt` yerine `signal.NotifyContext(..., syscall.SIGTERM)` kullanın; tini yalnız fork varsa gerekir.
7807 yerine onu güncelleyen RFC 9457'yi baz alın, üretimi tek bir exception handler'a toplayın ve `type` URI'sini sözleşme gibi yönetin.
Sıcak sorguda `EXPLAIN (ANALYZE, BUFFERS)` baskın maliyet olarak heap erişimini gösteriyorsa `INCLUDE` ekleyin, `Heap Fetches: 0` için autovacuum'u sıkın.
`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.
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.