<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Concepts on Advanced Beginner</title><link>https://advanced-beginner.github.io/en/docs/kafka/concepts/</link><description>Recent content in Concepts on Advanced Beginner</description><generator>Hugo</generator><language>en-US</language><managingEditor>d8lzz1gpw@mozmail.com (kimbenji)</managingEditor><webMaster>d8lzz1gpw@mozmail.com (kimbenji)</webMaster><lastBuildDate>Mon, 23 Mar 2026 19:08:15 +0900</lastBuildDate><atom:link href="https://advanced-beginner.github.io/en/docs/kafka/concepts/index.xml" rel="self" type="application/rss+xml"/><item><title>Core Components</title><link>https://advanced-beginner.github.io/en/docs/kafka/concepts/core-components/</link><pubDate>Sat, 10 Jan 2026 00:00:00 +0000</pubDate><author>d8lzz1gpw@mozmail.com (kimbenji)</author><guid>https://advanced-beginner.github.io/en/docs/kafka/concepts/core-components/</guid><description>&lt;blockquote class="book-hint info"&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;br&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Producer&lt;/strong&gt;: Publishes messages and selects Partitions to send to Broker&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Consumer&lt;/strong&gt;: Reads messages from Partitions as part of a Consumer Group and manages Offsets&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Broker&lt;/strong&gt;: Stores and replicates messages, providing high availability through Leader/Follower structure&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Topic&lt;/strong&gt;: A logical channel for categorizing messages&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Partition&lt;/strong&gt;: A unit that physically divides Topics to enable parallel processing&lt;/li&gt;
&lt;/ul&gt;

&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Target Audience&lt;/strong&gt;: Developers new to Kafka or those learning basic concepts of distributed messaging systems&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Prerequisites&lt;/strong&gt;: Basic network communication concepts, REST API experience, Spring Boot fundamentals&lt;/p&gt;</description></item><item><title>Message Flow</title><link>https://advanced-beginner.github.io/en/docs/kafka/concepts/message-flow/</link><pubDate>Sat, 10 Jan 2026 00:00:00 +0000</pubDate><author>d8lzz1gpw@mozmail.com (kimbenji)</author><guid>https://advanced-beginner.github.io/en/docs/kafka/concepts/message-flow/</guid><description>&lt;blockquote class="book-hint info"&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;br&gt;&lt;ul&gt;
&lt;li&gt;Producer serializes messages and Partitioner determines target Partition&lt;/li&gt;
&lt;li&gt;With Key, same Key goes to same Partition ensuring order guarantee&lt;/li&gt;
&lt;li&gt;Broker stores messages in Partition, replicates to ISR, then returns ACK&lt;/li&gt;
&lt;li&gt;Consumer fetches messages via Pull method, commits Offset after processing&lt;/li&gt;
&lt;li&gt;Three delivery guarantee levels: At-Most-Once, At-Least-Once, Exactly-Once&lt;/li&gt;
&lt;/ul&gt;

&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Target Audience&lt;/strong&gt;: Developers who understand Kafka&amp;rsquo;s basic components, those learning detailed message delivery operations&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Prerequisites&lt;/strong&gt;: Understanding of Producer, Consumer, Broker, Topic, Partition concepts from &lt;a href="https://advanced-beginner.github.io/en/docs/kafka/concepts/core-components/"&gt;Core Components&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Consumer Group &amp; Offset</title><link>https://advanced-beginner.github.io/en/docs/kafka/concepts/consumer-group/</link><pubDate>Sat, 10 Jan 2026 00:00:00 +0000</pubDate><author>d8lzz1gpw@mozmail.com (kimbenji)</author><guid>https://advanced-beginner.github.io/en/docs/kafka/concepts/consumer-group/</guid><description>&lt;blockquote class="book-hint info"&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;br&gt;&lt;ul&gt;
&lt;li&gt;Consumer Group is a logical grouping that enables parallel processing of Consumers with the same purpose&lt;/li&gt;
&lt;li&gt;Core rule: One Partition can only be read by one Consumer within a Group&lt;/li&gt;
&lt;li&gt;Offset is the message position number within a Partition, stored in the __consumer_offsets topic&lt;/li&gt;
&lt;li&gt;Auto commit is convenient but risks data loss; manual commit provides precise control&lt;/li&gt;
&lt;li&gt;When a Consumer fails, rebalancing automatically redistributes Partitions&lt;/li&gt;
&lt;/ul&gt;

&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Target audience&lt;/strong&gt;: Developers building or operating Kafka Consumers, those learning about parallel processing and state management&lt;/p&gt;</description></item><item><title>Consumer Advanced Operations</title><link>https://advanced-beginner.github.io/en/docs/kafka/concepts/consumer-advanced/</link><pubDate>Sat, 10 Jan 2026 00:00:00 +0000</pubDate><author>d8lzz1gpw@mozmail.com (kimbenji)</author><guid>https://advanced-beginner.github.io/en/docs/kafka/concepts/consumer-advanced/</guid><description>&lt;blockquote class="book-hint info"&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;br&gt;&lt;ul&gt;
&lt;li&gt;session.timeout.ms controls failure detection; max.poll.interval.ms limits processing time&lt;/li&gt;
&lt;li&gt;Use Cooperative Sticky Assignor to minimize rebalancing impact (Kafka 2.4+)&lt;/li&gt;
&lt;li&gt;Static Group Membership prevents rebalancing on restarts&lt;/li&gt;
&lt;li&gt;Consumer Lag is the most important monitoring metric; trend observation is key&lt;/li&gt;
&lt;li&gt;Use kafka-consumer-groups.sh for manual Offset reset (Consumer must be stopped)&lt;/li&gt;
&lt;/ul&gt;

&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Target audience&lt;/strong&gt;: Developers and operators running Kafka Consumers in production&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Prerequisites&lt;/strong&gt;: Basic concepts from &lt;a href="https://advanced-beginner.github.io/en/docs/kafka/concepts/consumer-group/"&gt;Consumer Group &amp;amp; Offset&lt;/a&gt;, ISR and Leader concepts from &lt;a href="https://advanced-beginner.github.io/en/docs/kafka/concepts/replication/"&gt;Replication&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Replication</title><link>https://advanced-beginner.github.io/en/docs/kafka/concepts/replication/</link><pubDate>Sat, 10 Jan 2026 00:00:00 +0000</pubDate><author>d8lzz1gpw@mozmail.com (kimbenji)</author><guid>https://advanced-beginner.github.io/en/docs/kafka/concepts/replication/</guid><description>&lt;blockquote class="book-hint info"&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;br&gt;&lt;ul&gt;
&lt;li&gt;Replication Factor (RF) is the number of Partition replicas; RF=3 is recommended for production&lt;/li&gt;
&lt;li&gt;Leader handles all reads/writes, Followers only replicate and promote on failure&lt;/li&gt;
&lt;li&gt;ISR (In-Sync Replicas) is the set of replicas synchronized with the Leader&lt;/li&gt;
&lt;li&gt;Use min.insync.replicas=2 + acks=all combination for data safety&lt;/li&gt;
&lt;li&gt;KRaft mode (Kafka 3.3+) enables cluster operation without Zookeeper&lt;/li&gt;
&lt;/ul&gt;

&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Target Audience&lt;/strong&gt;: Developers and operators managing Kafka clusters or designing high-availability systems&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Prerequisites&lt;/strong&gt;: Understanding of Broker and Partition concepts from &lt;a href="https://advanced-beginner.github.io/en/docs/kafka/concepts/core-components/"&gt;Core Components&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Advanced Concepts</title><link>https://advanced-beginner.github.io/en/docs/kafka/concepts/advanced-concepts/</link><pubDate>Sat, 10 Jan 2026 00:00:00 +0000</pubDate><author>d8lzz1gpw@mozmail.com (kimbenji)</author><guid>https://advanced-beginner.github.io/en/docs/kafka/concepts/advanced-concepts/</guid><description>&lt;blockquote class="book-hint info"&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;br&gt;&lt;ul&gt;
&lt;li&gt;acks=0 (fast/may lose), acks=1 (Leader only), acks=all (all ISR, recommended)&lt;/li&gt;
&lt;li&gt;Use acks=all + min.insync.replicas=2 combination for data safety&lt;/li&gt;
&lt;li&gt;Message Key sends to same Partition for ordering; be cautious when changing Partition count&lt;/li&gt;
&lt;li&gt;Retention: time-based deletion (default 7 days), size-based deletion, Log Compaction&lt;/li&gt;
&lt;li&gt;Idempotent Producer (default in Kafka 3.0+) prevents duplicates on network errors&lt;/li&gt;
&lt;/ul&gt;

&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Target Audience&lt;/strong&gt;: Developers who want to understand Kafka&amp;rsquo;s advanced concepts and optimize production settings&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Prerequisites&lt;/strong&gt;: Topic, Partition, Broker concepts from &lt;a href="https://advanced-beginner.github.io/en/docs/kafka/concepts/message-flow/"&gt;Message Flow&lt;/a&gt;, ISR, Leader, Follower concepts from &lt;a href="https://advanced-beginner.github.io/en/docs/kafka/concepts/replication/"&gt;Replication&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Transactions and Exactly-Once</title><link>https://advanced-beginner.github.io/en/docs/kafka/concepts/transactions/</link><pubDate>Sat, 10 Jan 2026 00:00:00 +0000</pubDate><author>d8lzz1gpw@mozmail.com (kimbenji)</author><guid>https://advanced-beginner.github.io/en/docs/kafka/concepts/transactions/</guid><description>&lt;blockquote class="book-hint info"&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;br&gt;&lt;ul&gt;
&lt;li&gt;At-Most-Once: may lose/no duplicates, At-Least-Once: no loss/may duplicate&lt;/li&gt;
&lt;li&gt;Exactly-Once: requires Idempotent Producer + Transactional API + read_committed&lt;/li&gt;
&lt;li&gt;Idempotent Producer is enabled by default in Kafka 3.0+, prevents duplicates for single Partition&lt;/li&gt;
&lt;li&gt;Kafka transactions guarantee atomic writes across multiple Partitions&lt;/li&gt;
&lt;li&gt;Use Outbox pattern when DB + Kafka atomic processing is needed&lt;/li&gt;
&lt;/ul&gt;

&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Target Audience&lt;/strong&gt;: Developers building systems where message delivery guarantees are critical&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Prerequisites&lt;/strong&gt;: acks and Idempotent Producer concepts from &lt;a href="https://advanced-beginner.github.io/en/docs/kafka/concepts/advanced-concepts/"&gt;Advanced Concepts&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Producer Tuning</title><link>https://advanced-beginner.github.io/en/docs/kafka/concepts/producer-tuning/</link><pubDate>Sat, 10 Jan 2026 00:00:00 +0000</pubDate><author>d8lzz1gpw@mozmail.com (kimbenji)</author><guid>https://advanced-beginner.github.io/en/docs/kafka/concepts/producer-tuning/</guid><description>&lt;blockquote class="book-hint info"&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;br&gt;&lt;ul&gt;
&lt;li&gt;Adjust batch efficiency with batch.size and linger.ms (operates as OR condition)&lt;/li&gt;
&lt;li&gt;Just linger.ms=5 can increase throughput by ~2.7x&lt;/li&gt;
&lt;li&gt;compression.type: recommend snappy (general), lz4 (high performance), zstd (high compression)&lt;/li&gt;
&lt;li&gt;Idempotent Producer (Kafka 3.0+ default) prevents duplicates and guarantees order&lt;/li&gt;
&lt;li&gt;BufferExhaustedException occurs when buffer.memory is insufficient&lt;/li&gt;
&lt;/ul&gt;

&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Target Audience&lt;/strong&gt;: Developers optimizing Producer performance, operators needing high-volume message processing&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Prerequisites&lt;/strong&gt;: acks, Idempotent Producer concepts from &lt;a href="https://advanced-beginner.github.io/en/docs/kafka/concepts/advanced-concepts/"&gt;Advanced Concepts&lt;/a&gt;, Topic, Partition concepts from &lt;a href="https://advanced-beginner.github.io/en/docs/kafka/concepts/message-flow/"&gt;Message Flow&lt;/a&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Understanding the core settings to optimize Producer performance. This document is written for Kafka 3.6.x and code examples are validated in Spring Boot 3.2.x, Spring Kafka 3.1.x, and Java 17 environments.&lt;/p&gt;</description></item><item><title>Consumer Tuning</title><link>https://advanced-beginner.github.io/en/docs/kafka/concepts/consumer-tuning/</link><pubDate>Sat, 10 Jan 2026 00:00:00 +0000</pubDate><author>d8lzz1gpw@mozmail.com (kimbenji)</author><guid>https://advanced-beginner.github.io/en/docs/kafka/concepts/consumer-tuning/</guid><description>&lt;blockquote class="book-hint info"&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;br&gt;&lt;ul&gt;
&lt;li&gt;Use fetch.min.bytes/fetch.max.wait.ms to balance batch efficiency and latency&lt;/li&gt;
&lt;li&gt;max.poll.records and max.poll.interval.ms are key to preventing rebalancing&lt;/li&gt;
&lt;li&gt;session.timeout.ms should be at least 3x heartbeat.interval.ms&lt;/li&gt;
&lt;li&gt;Throughput optimization: increase fetch.min.size, increase max.poll.records&lt;/li&gt;
&lt;li&gt;Latency optimization: decrease fetch.min.size, decrease fetch.max.wait&lt;/li&gt;
&lt;/ul&gt;

&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Target Audience&lt;/strong&gt;: Developers optimizing Consumer performance, operators seeking operational stability&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Prerequisites&lt;/strong&gt;: Consumer operation principles from &lt;a href="https://advanced-beginner.github.io/en/docs/kafka/concepts/consumer-group/"&gt;Consumer Group &amp;amp; Offset&lt;/a&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Understand Consumer performance optimization and stable operation settings.&lt;/p&gt;
&lt;h4 id="consumer-internal-structure"&gt;Consumer Internal Structure&lt;a class="anchor" href="#consumer-internal-structure"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;Consumer operates by fetching messages from Broker, delivering to the application, and committing Offset after processing. When Fetcher retrieves data from Broker, it&amp;rsquo;s delivered to the application through poll(), and Offset is committed after processing.&lt;/p&gt;</description></item><item><title>Advanced Error Handling</title><link>https://advanced-beginner.github.io/en/docs/kafka/concepts/error-handling/</link><pubDate>Sat, 10 Jan 2026 00:00:00 +0000</pubDate><author>d8lzz1gpw@mozmail.com (kimbenji)</author><guid>https://advanced-beginner.github.io/en/docs/kafka/concepts/error-handling/</guid><description>&lt;blockquote class="book-hint info"&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;br&gt;&lt;ul&gt;
&lt;li&gt;Error types: Deserialization errors (skip), Transient errors (retry), Permanent errors (DLT)&lt;/li&gt;
&lt;li&gt;Use @RetryableTopic for declarative retry and DLT handling (Spring Kafka 2.7+)&lt;/li&gt;
&lt;li&gt;DefaultErrorHandler + DeadLetterPublishingRecoverer for DLT publishing&lt;/li&gt;
&lt;li&gt;Handle deserialization errors with ErrorHandlingDeserializer&lt;/li&gt;
&lt;li&gt;Set up alerts when DLT messages arrive for quick response&lt;/li&gt;
&lt;/ul&gt;

&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Target Audience&lt;/strong&gt;: Developers implementing Consumer error handling strategies&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Prerequisites&lt;/strong&gt;: Consumer operation principles from &lt;a href="https://advanced-beginner.github.io/en/docs/kafka/concepts/consumer-group/"&gt;Consumer Group &amp;amp; Offset&lt;/a&gt;, Spring Kafka basics&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Understand Kafka Consumer error handling strategies and Dead Letter Topic patterns.&lt;/p&gt;</description></item><item><title>Monitoring Basics</title><link>https://advanced-beginner.github.io/en/docs/kafka/concepts/monitoring/</link><pubDate>Sat, 10 Jan 2026 00:00:00 +0000</pubDate><author>d8lzz1gpw@mozmail.com (kimbenji)</author><guid>https://advanced-beginner.github.io/en/docs/kafka/concepts/monitoring/</guid><description>&lt;blockquote class="book-hint info"&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;br&gt;&lt;ul&gt;
&lt;li&gt;Consumer Lag is the most important metric; take immediate action on increasing trends&lt;/li&gt;
&lt;li&gt;Broker key metrics: UnderReplicatedPartitions, ActiveControllerCount, OfflinePartitionsCount&lt;/li&gt;
&lt;li&gt;Producer metrics: record-send-rate, record-error-rate, request-latency-avg&lt;/li&gt;
&lt;li&gt;Prometheus + Grafana recommended for visualization and alerting&lt;/li&gt;
&lt;li&gt;On Lag spike: Check Consumer status → Processing speed → Rebalancing → Scale out&lt;/li&gt;
&lt;/ul&gt;

&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Target Audience&lt;/strong&gt;: Operators and developers managing and monitoring Kafka clusters&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Prerequisites&lt;/strong&gt;: Offset and Lag concepts from &lt;a href="https://advanced-beginner.github.io/en/docs/kafka/concepts/consumer-group/"&gt;Consumer Group &amp;amp; Offset&lt;/a&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Understand key metrics for Kafka clusters and applications.&lt;/p&gt;</description></item><item><title>Security</title><link>https://advanced-beginner.github.io/en/docs/kafka/concepts/security/</link><pubDate>Sat, 10 Jan 2026 00:00:00 +0000</pubDate><author>d8lzz1gpw@mozmail.com (kimbenji)</author><guid>https://advanced-beginner.github.io/en/docs/kafka/concepts/security/</guid><description>&lt;blockquote class="book-hint info"&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;br&gt;&lt;ul&gt;
&lt;li&gt;Kafka security has 3 layers: SSL/TLS (encryption) -&amp;gt; SASL (authentication) -&amp;gt; ACL (authorization)&lt;/li&gt;
&lt;li&gt;SSL/TLS encrypts data in transit, mutual TLS for client authentication&lt;/li&gt;
&lt;li&gt;SASL mechanisms: SCRAM-SHA-256 recommended (production), PLAIN only with SSL&lt;/li&gt;
&lt;li&gt;ACL provides fine-grained Topic/Group access control per Principal&lt;/li&gt;
&lt;li&gt;Set allow.everyone.if.no.acl.found=false for default deny policy&lt;/li&gt;
&lt;/ul&gt;

&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Target Audience&lt;/strong&gt;: Operators and security administrators configuring Kafka cluster security&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Prerequisites&lt;/strong&gt;: Understanding of Broker, Producer, Consumer concepts from &lt;a href="https://advanced-beginner.github.io/en/docs/kafka/concepts/core-components/"&gt;Core Components&lt;/a&gt;, basic security concepts (encryption, authentication, authorization)&lt;/p&gt;</description></item><item><title>Ecosystem</title><link>https://advanced-beginner.github.io/en/docs/kafka/concepts/ecosystem/</link><pubDate>Sat, 10 Jan 2026 00:00:00 +0000</pubDate><author>d8lzz1gpw@mozmail.com (kimbenji)</author><guid>https://advanced-beginner.github.io/en/docs/kafka/concepts/ecosystem/</guid><description>&lt;blockquote class="book-hint info"&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;br&gt;&lt;ul&gt;
&lt;li&gt;Kafka Connect: Data movement between external systems and Kafka, build pipelines with configuration alone, no coding required&lt;/li&gt;
&lt;li&gt;Schema Registry: Centralized message schema management, compatibility validation prevents runtime errors&lt;/li&gt;
&lt;li&gt;Kafka Streams: Real-time stream processing library, no separate cluster required&lt;/li&gt;
&lt;li&gt;Debezium: CDC (Change Data Capture) streams database changes to Kafka&lt;/li&gt;
&lt;li&gt;Schema compatibility: Supports BACKWARD (default), FORWARD, FULL, NONE policies&lt;/li&gt;
&lt;/ul&gt;

&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Target Audience&lt;/strong&gt;: Developers and data engineers building data pipelines using the Kafka ecosystem&lt;/p&gt;</description></item></channel></rss>