
		<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/kafka/feed.xml" rel="self" type="application/rss+xml"/>
				
		<item>
			<guid>https://josedavidbaena.com/blog/kafka-protocol-internals/01-wire-protocol-compatibility</guid>
			<title>Kafka Wire Protocol: How Compatibility Survives Upgrades</title>
			<link>https://josedavidbaena.com/blog/kafka-protocol-internals/01-wire-protocol-compatibility</link>
			<description>How Kafka frames requests, versions schemas, negotiates broker capabilities, and evolves fields without requiring clients and brokers to upgrade together.</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>protocols</category><category>compatibility</category>
		</item>
	
		<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/04-producer-idempotence-transactions</guid>
			<title>Kafka Producer Idempotence, Fencing, and Transactions</title>
			<link>https://josedavidbaena.com/blog/kafka-protocol-internals/04-producer-idempotence-transactions</link>
			<description>How producer IDs, epochs, sequences, fencing, and transaction markers make Kafka retries safe—and where exactly-once semantics stop.</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>idempotence</category><category>transactions</category>
		</item>
	
		<item>
			<guid>https://josedavidbaena.com/blog/kafka-protocol-internals/05-replication-durability</guid>
			<title>Kafka Replication: How the Next Leader Proves Durability</title>
			<link>https://josedavidbaena.com/blog/kafka-protocol-internals/05-replication-durability</link>
			<description>How ISR, high watermarks, leader epochs, and eligible replicas let Kafka prove which committed history may lead after failure.</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>replication</category><category>protocols</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/debugging-kafka-protocol-11-messages-become-1</guid>
			<title>Debugging a Kafka Protocol Implementation: When 11 Messages Become 1</title>
			<link>https://josedavidbaena.com/blog/debugging-kafka-protocol-11-messages-become-1</link>
			<description>How a missing 8-byte write in a Kafka protocol implementation turned 11 messages into 1—with zero errors, zero warnings, and complete silent data loss.</description>
			<pubDate>Fri, 12 Dec 2025 00:00:00 GMT</pubDate>
			<author>josedab@gmail.com (José David Baena)</author>
			<category>kafka</category><category>debugging</category><category>protocols</category><category>rust</category><category>distributed-systems</category><category>streaming</category>
		</item>
	
			</channel>
		</rss>
	