<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Deep-Dive on Lorbic</title>
    <link>https://lorbic.com/categories/deep-dive/</link>
    <description>Recent content in Deep-Dive on Lorbic</description>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate>Thu, 13 Aug 2026 18:00:00 +0530</lastBuildDate>
    <atom:link href="https://lorbic.com/categories/deep-dive/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>How Go Channels Actually Work</title>
      <link>https://lorbic.com/go-channels-deep-dive/</link>
      <pubDate>Thu, 13 Aug 2026 18:00:00 +0530</pubDate>
      <guid>https://lorbic.com/go-channels-deep-dive/</guid>
      <description>&lt;p&gt;A single unbuffered channel send without an active receiver is enough to silently lock up a production worker pool, leaking memory until your service gets killed by the OS kernel.&lt;/p&gt;&#xA;&lt;p&gt;On the surface, Go channels look simple: they synchronize concurrent execution without manual mutex management. But under heavy load, a minor oversight in channel sizing or worker coordination blocks the scheduler, leaks memory, or crashes processes with runtime panics.&lt;/p&gt;&#xA;&lt;p&gt;&lt;picture class=&#34;optimized-image-container&#34;&gt;&lt;img src=&#34;https://lorbic.com/go-channels-deep-dive/go-scheduler-meme.webp&#34; width=&#34;646&#34; height=&#34;797&#34; alt=&#34;The Go scheduler coordinating 10,000 goroutines on a single-core CPU&#34;  loading=&#34;lazy&#34; fetchpriority=&#34;auto&#34; class=&#34;img-fluid&#34; /&gt;&#xA;    &lt;/picture&gt;&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
