<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>TCP on Ikwuka Okoye</title><link>https://ikwukao.dev/tags/tcp/</link><description>Recent content in TCP on Ikwuka Okoye</description><generator>Hugo</generator><language>en-US</language><lastBuildDate>Tue, 11 Aug 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://ikwukao.dev/tags/tcp/index.xml" rel="self" type="application/rss+xml"/><item><title>Building a Concurrent TCP Server in Go: Connections, Deadlines, and Graceful Shutdown</title><link>https://ikwukao.dev/journal/concurrent-tcp-server-go/</link><pubDate>Tue, 11 Aug 2026 00:00:00 +0000</pubDate><guid>https://ikwukao.dev/journal/concurrent-tcp-server-go/</guid><description>&lt;h2 id="building-a-concurrent-tcp-server-in-go-connections-deadlines-and-graceful-shutdown"&gt;Building a Concurrent TCP Server in Go: Connections, Deadlines, and Graceful Shutdown&lt;/h2&gt;
&lt;p&gt;TCP makes it possible to build extremely simple network services.&lt;/p&gt;
&lt;p&gt;Open a listener. Accept a connection. Read bytes. Process them.&lt;/p&gt;
&lt;p&gt;The complexity appears when the server has to do this for many clients at the same time while remaining responsive when clients become slow, disappear unexpectedly, or send data indefinitely.&lt;/p&gt;
&lt;p&gt;That was one of the core engineering problems behind &lt;strong&gt;Strata-Log&lt;/strong&gt;.&lt;/p&gt;</description></item><item><title>Building a High-Throughput TCP Server in Go</title><link>https://ikwukao.dev/journal/strata-log-tcp/</link><pubDate>Tue, 11 Aug 2026 00:00:00 +0000</pubDate><guid>https://ikwukao.dev/journal/strata-log-tcp/</guid><description>&lt;p&gt;When building a high-throughput backend service, it is easy to focus on the application protocol and overlook the network boundary underneath it.&lt;/p&gt;
&lt;p&gt;Strata-Log takes the opposite approach.&lt;/p&gt;
&lt;p&gt;The project uses raw TCP connections as its ingestion layer, making connection handling, timeouts, concurrency, and shutdown behavior explicit.&lt;/p&gt;
&lt;p&gt;That creates a useful engineering environment for understanding what actually happens between a client sending data and a backend processing it.&lt;/p&gt;
&lt;h2 id="why-raw-tcp"&gt;Why Raw TCP?&lt;/h2&gt;
&lt;p&gt;Higher-level protocols and frameworks are valuable because they provide useful abstractions.&lt;/p&gt;</description></item><item><title>Designing Strata-Log: Architecture for a High-Throughput Distributed Log Engine</title><link>https://ikwukao.dev/journal/strata-log-architecture/</link><pubDate>Mon, 10 Aug 2026 00:00:00 +0000</pubDate><guid>https://ikwukao.dev/journal/strata-log-architecture/</guid><description>&lt;p&gt;Building a log aggregation system looks deceptively simple at first.&lt;/p&gt;
&lt;p&gt;Accept a connection, read some data, and write it somewhere.&lt;/p&gt;
&lt;p&gt;The difficulty begins when the system has to do that thousands of times concurrently without allowing network traffic, memory allocation, disk I/O, or shutdown behavior to become bottlenecks.&lt;/p&gt;
&lt;p&gt;That problem became the foundation for &lt;strong&gt;Strata-Log&lt;/strong&gt;, an experimental high-throughput distributed log aggregation engine built in Go.&lt;/p&gt;
&lt;p&gt;The project is deliberately focused on the lower layers of the system: TCP connections, concurrency, memory reuse, buffering, disk writes, and graceful shutdown.&lt;/p&gt;</description></item></channel></rss>