
		<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
			<channel>
				<title>José David Baena – Software Engineer</title>
				<link>https://josedavidbaena.com</link>
				<description>Personal website and blog where I document thoughts, ideas, and interests in software engineering, web performance, and open source technologies.</description>
				<language>en-us</language>
				<managingEditor>josedab@gmail.com (José David Baena)</managingEditor>
				<webMaster>josedab@gmail.com (José David Baena)</webMaster>
				<lastBuildDate>Sun, 26 Jul 2026 00:00:00 GMT</lastBuildDate>
				<atom:link href="https://josedavidbaena.com/tags/performance/feed.xml" rel="self" type="application/rss+xml"/>
				
		<item>
			<guid>https://josedavidbaena.com/blog/kafka-protocol-internals/02-fetch-sessions-performance</guid>
			<title>Kafka Fetch Sessions: Scaling Beyond Linear Requests</title>
			<link>https://josedavidbaena.com/blog/kafka-protocol-internals/02-fetch-sessions-performance</link>
			<description>How KIP-227 replaces repeated per-partition Fetch metadata with session deltas, what state that creates, and where the optimization stops paying.</description>
			<pubDate>Sun, 26 Jul 2026 00:00:00 GMT</pubDate>
			<author>josedab@gmail.com (José David Baena)</author>
			<category>kafka</category><category>distributed-systems</category><category>protocol</category><category>consumers</category><category>performance</category>
		</item>
	
		<item>
			<guid>https://josedavidbaena.com/blog/kafka-protocol-internals/03-request-lifecycle</guid>
			<title>Where a Kafka Request Spends Its Milliseconds</title>
			<link>https://josedavidbaena.com/blog/kafka-protocol-internals/03-request-lifecycle</link>
			<description>Trace a Kafka request through the broker&#39;s real thread and queue model, then diagnose p99 latency against a healthy baseline before changing knobs.</description>
			<pubDate>Sun, 26 Jul 2026 00:00:00 GMT</pubDate>
			<author>josedab@gmail.com (José David Baena)</author>
			<category>kafka</category><category>distributed-systems</category><category>performance</category><category>latency</category><category>internals</category>
		</item>
	
		<item>
			<guid>https://josedavidbaena.com/blog/kafka-protocol-internals/06-compression-decisions</guid>
			<title>Kafka Compression: Choosing a Codec With Real Workloads</title>
			<link>https://josedavidbaena.com/blog/kafka-protocol-internals/06-compression-decisions</link>
			<description>A measurement-driven guide to Kafka compression across CPU, network, storage, and latency, using real payloads instead of codec folklore.</description>
			<pubDate>Sun, 26 Jul 2026 00:00:00 GMT</pubDate>
			<author>josedab@gmail.com (José David Baena)</author>
			<category>kafka</category><category>compression</category><category>zstd</category><category>lz4</category><category>performance</category>
		</item>
	
		<item>
			<guid>https://josedavidbaena.com/blog/kafka-protocol-internals/07-quotas-throttling</guid>
			<title>Kafka Quotas: How Brokers Contain Noisy Neighbors</title>
			<link>https://josedavidbaena.com/blog/kafka-protocol-internals/07-quotas-throttling</link>
			<description>Kafka quotas contain noisy neighbors through versioned throttle responses, broker-side channel muting, and per-broker resource accounting.</description>
			<pubDate>Sun, 26 Jul 2026 00:00:00 GMT</pubDate>
			<author>josedab@gmail.com (José David Baena)</author>
			<category>kafka</category><category>distributed-systems</category><category>protocol</category><category>performance</category><category>multi-tenant</category>
		</item>
	
		<item>
			<guid>https://josedavidbaena.com/blog/mermaid-nextjs-journey/mermaid-diagrams-three-architectures-one-solution</guid>
			<title>Three Architectures, One Solution: Building a Mermaid.js Diagram System</title>
			<link>https://josedavidbaena.com/blog/mermaid-nextjs-journey/mermaid-diagrams-three-architectures-one-solution</link>
			<description>Three Mermaid-in-Next.js architectures, one that shipped. Index post for a 3-part case study on build-time rendering, over-engineering, and deletion.</description>
			<pubDate>Mon, 20 Oct 2025 00:00:00 GMT</pubDate>
			<author>josedab@gmail.com (José David Baena)</author>
			<category>nextjs</category><category>mermaid</category><category>architecture</category><category>performance</category><category>case-study</category><category>pragmatic-engineering</category>
		</item>
	
		<item>
			<guid>https://josedavidbaena.com/blog/mermaid-nextjs-journey/mermaid-nextjs-part-1-build-time-rendering</guid>
			<title>When Build-Time Rendering Seemed Like a Good Idea</title>
			<link>https://josedavidbaena.com/blog/mermaid-nextjs-journey/mermaid-nextjs-part-1-build-time-rendering</link>
			<description>Part 1: I optimized Mermaid rendering with build-time Puppeteer SVGs. Builds went 5s to 45s. Why I abandoned the approach and what it taught me.</description>
			<pubDate>Fri, 03 Oct 2025 00:00:00 GMT</pubDate>
			<author>josedab@gmail.com (José David Baena)</author>
			<category>nextjs</category><category>mermaid</category><category>build-optimization</category><category>static-site-generation</category><category>performance</category><category>remark-plugins</category>
		</item>
	
			</channel>
		</rss>
	