Blog
Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.
Worker Service ve In-Process Job Queue: Channel, PeriodicTimer ve Windows Service/systemd
Bounded Channel ile kurulan in-process job queue, dolduğunda TryWrite false döner; endpoint bunu Retry-After başlıklı bir 503'e çevirerek backpressure uygular. Periyodik iş için PeriodicTimer kaçırılan tick'leri biriktirmez, uzun süren bir turdan sonra en fazla bir kez hemen tetiklenir. AddWindowsService ve AddSystemd yalnız ilgili ortamda devreye girer; queue ise restart'ta boşalır.
Asenkron İşleme: Queue, Worker, Fan-Out ve Backpressure
Cevabın parçası olmayan ağır işler request'ten çıkarılıp queue ve worker'lara verilir; API 202 Accepted ve bir status adresi döner. Gerçek denemede senkron fatura endpoint'i 100 eşzamanlı istekte 52 timeout üretip yine 100 PDF render ederken, bounded queue'lu sürüm 9 ms'de cevap veriyor ve dolunca 503 + Retry-After ile backpressure uyguluyor; asenkronluk işi hızlandırmıyor, zamanlamasını ayırıyor. Queue derinliğiyle autoscaling, fan-out ve at-least-once için idempotency key de yazıda.