<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>go on Ikoma's Blog</title><link>https://blog.yusukeikoma.com/tags/go/</link><description>Recent content in go on Ikoma's Blog</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Wed, 19 Aug 2026 12:47:53 +0900</lastBuildDate><atom:link href="https://blog.yusukeikoma.com/tags/go/index.xml" rel="self" type="application/rss+xml"/><item><title>Batching and Bounded Frames on a Metered Relay</title><link>https://blog.yusukeikoma.com/posts/batching-and-bounded-frames-on-a-metered-relay/</link><pubDate>Wed, 19 Aug 2026 12:47:53 +0900</pubDate><guid>https://blog.yusukeikoma.com/posts/batching-and-bounded-frames-on-a-metered-relay/</guid><description>When every WebSocket message costs money and every frame has a hard cap, you need batching with independent flush triggers, a single-frame threshold below the cap, bounded chunking, and capability flags that survive mixed-version rollouts. The sharp edges are ordering on shutdown and a zero value that disappears from the wire.</description></item><item><title>Liveness Without Pings, and Idle Sleep</title><link>https://blog.yusukeikoma.com/posts/liveness-without-pings-and-idle-sleep/</link><pubDate>Tue, 18 Aug 2026 22:41:09 +0900</pubDate><guid>https://blog.yusukeikoma.com/posts/liveness-without-pings-and-idle-sleep/</guid><description>A fixed-interval keepalive costs a message in each direction even when the connection is busy. Treating every inbound frame as proof of life, probing only quiet connections, and letting an existing heartbeat tell an idle host when to disconnect removes most of that traffic, at the price of a bounded wake-up delay.</description></item><item><title>Hardening a Go Daemon and a Python API</title><link>https://blog.yusukeikoma.com/posts/go-daemon-and-python-api-hardening/</link><pubDate>Sat, 01 Aug 2026 14:11:31 +0900</pubDate><guid>https://blog.yusukeikoma.com/posts/go-daemon-and-python-api-hardening/</guid><description>Five techniques from a polyglot codebase: rolling out golangci-lint on existing Go code, running the race detector in CI, bounding subprocess lifetimes, re-registering launchd services without the bootout race, and choosing PostgreSQL row-lock strength around foreign keys.</description></item><item><title>AI Agent Clean Architecture</title><link>https://blog.yusukeikoma.com/posts/ai-agent-clean-architecture/</link><pubDate>Tue, 07 Apr 2026 12:00:00 +0900</pubDate><guid>https://blog.yusukeikoma.com/posts/ai-agent-clean-architecture/</guid><description>Why I built an AI agent platform in Go instead of using LangChain, and how Clean Architecture made model, memory, tool, and streaming concerns independently replaceable.</description></item></channel></rss>