Sana Qureshi
✓ Enrolled📍 Bengaluru • Java Backend → Kafka Streams
📅 Weekend Sat–Sun (3–5 PM IST)
Launch full-screen from your iPhone / iPad Home Screen
Master Apache Kafka from Zero-Copy OS PageCache, KRaft Consensus & ISR Replication to Idempotent Java Producers, CooperativeSticky Rebalancing, MirrorMaker 2, Debezium Kafka Connect, RocksDB Kafka Streams & JMX Lag Monitoring — with 200 Mock Tests & Voice MockAttempt AI Interviews at ₹5,999 + 18% GST.
👨💻 Trainers: 100% Active Working IT Professionals
⏱️ Duration: 15–17 Weeks • Live + Hands-On Projects (208h Guided Mastery)
📅 Weekdays (Mon–Fri): 1 Hour / Day • 7:00 AM – 8:00 PM IST (choose any slot based on trainer availability)
📅 Weekends (Sat–Sun): 2 Hours / Day • 7:00 AM – 8:00 PM IST (choose any slot based on trainer availability)
💻 LeetCode & HackerRank: Trainer problem-solving support (Java 21 LTS (Kafka Clients & Streams)).
✓ Live Client Prod Project + Barcode Certificate & Official Internship Letter
Our counselor shares live demo link & issues your Student Portal ID to track every topic transparently.
Click any module or topic below to expand its learning objectives, plain-language overview, real-world purpose, hands-on code, lab tasks, 50-MCQ mocks, MockAttempt AI interviews, and capstone project.
Module Learning & Hands-On Objectives
💡 Self-Explanatory Overview: In simple, everyday terms, Apache Kafka Fundamentals — Immutable Commit Log, Sequential Disk I/O & Zero-Copy `sendfile()` teaches you how Kafka applications core abstractions of events (key, value, timestamp, headers), why sequential append-only disk writes rival RAM speeds via OS PageCache, and how multiple independent consumers replay the same log. Even if you have never seen this concept before, your trainer explains the real-life problem first, writes clean Apache Kafka 3.8 (KRaft Mode), Java 21 Kafka Clients API, Idempotent & Transactional Producers code live on screen, and shows what breaks in production if this step is skipped.
🎯 For What Purpose: To understand and apply Apache Kafka Fundamentals — Immutable Commit Log, Sequential Disk I/O & Zero-Copy `sendfile()` in real Kafka systems — specifically: Core abstractions of events (key, value, timestamp, headers), why sequential append-only disk writes rival RAM speeds via OS PageCache, and how multiple independent consumers replay the same log, so your code stays reliable, fast, and easy to maintain in production.
Apache Kafka Tutorial provides the basic and advanced concepts of Apache Kafka. This tutorial is designed for both beginners and professionals. Apache Kafka is an open-source stream-processing software platform which is used to handle the real-time data storage. It works as a broker between two parties, i.e., a sender and a receiver. It can handle about trillions of data events in a day. Apache Kafka tutorial journey...
Apache Kafka Fundamentals — Immutable Commit Log, Sequential Disk I/O & Zero-Copy `sendfile()` — Practical Assignment
Implement a production-ready Apache Kafka, KRaft, Event Streaming & Kafka Streams solution demonstrating Apache Kafka Fundamentals — Immutable Commit Log, Sequential Disk I/O & Zero-Copy `sendfile()`...
Apache Kafka Fundamentals — Immutable Commit Log, Sequential Disk I/O & Zero-Copy `sendfile()` — Hands-On Lab Task
import org.apache.kafka.clients.producer.ProducerRecord;
import org.apache.kafka.common.header.internals.RecordHeader;
import java.nio.charset.StandardCharsets;
public class EventEnvelopeDemo {
public static void main(String[] args) {
ProducerRecord<String, String> rec = new ProducerRecord<>("orders.v1", null, 1730390400000L, "ord-101", "{\"amount\":999}");
rec.headers().add(new RecordHeader("trace-id", "trc-9f8a".getBytes(StandardCharsets.UTF_8)));
System.out.println(rec.topic() + " | k...
💡 Self-Explanatory Overview: In simple, everyday terms, Apache Kafka Architecture — Brokers, KRaft Controller Quorum, Partitions & `__cluster_metadata` teaches you how Kafka applications inside a modern ZooKeeper-less Kafka cluster: KRaft Raft consensus voters, active controller metadata propagation, broker request/I/O thread pools, and partition segment files (`.log`, `.index`, `.timeindex`). Even if you have never seen this concept before, your trainer explains the real-life problem first, writes clean Apache Kafka 3.8 (KRaft Mode), Java 21 Kafka Clients API, Idempotent & Transactional Producers code live on screen, and shows what breaks in production if this step is skipped.
🎯 For What Purpose: To understand and apply Apache Kafka Architecture — Brokers, KRaft Controller Quorum, Partitions & `__cluster_metadata` in real Kafka systems — specifically: Inside a modern ZooKeeper-less Kafka cluster: KRaft Raft consensus voters, active controller metadata propagation, broker request/I/O thread pools, and partition segment files (`.log`, `.index`, `.timeindex`), so your code stays reliable, fast, and easy to maintain in production.
We have already learned the basic concepts of Apache Kafka. These basic concepts, such as Topics, partitions, producers, consumers, etc., together forms the Kafka architecture. As different applications design the architecture of Kafka accordingly, there are the following essential parts required to design Apache Kafka architecture. Data Ecosystem: Several applications that use Apache Kafka forms an ecosystem. This e...
Apache Kafka Architecture — Brokers, KRaft Controller Quorum, Partitions & `__cluster_metadata` — Practical Assignment
Implement a production-ready Apache Kafka, KRaft, Event Streaming & Kafka Streams solution demonstrating Apache Kafka Architecture — Brokers, KRaft Controller Quorum, Partitions & `__cluster_metadata`...
Apache Kafka Architecture — Brokers, KRaft Controller Quorum, Partitions & `__cluster_metadata` — Hands-On Lab Task
import org.apache.kafka.clients.admin.*;
import java.util.Map;
public class ClusterArchitectureProbe {
public static void main(String[] args) throws Exception {
try (Admin admin = Admin.create(Map.of(AdminClientConfig.BOOTSTRAP_SERVERS_CONFIG, "localhost:9092"))) {
DescribeClusterResult cluster = admin.describeCluster();
System.out.println("ClusterId=" + cluster.clusterId().get() + " | Controller=" + cluster.controller().get().id() + " | Brokers=" + cluster.nodes().get().size());...
Design a 6-broker KRaft cluster blueprint capable of ingesting 250,000 order events/sec (1 KB payload) with 7-day retention, 3x replication, and zero ZooKeeper dependencies.
Module Learning & Hands-On Objectives
💡 Self-Explanatory Overview: In simple, everyday terms, Apache Kafka Use Cases — Transactional Outbox, Event Sourcing, CQRS & Real-Time Telemetry teaches you how Kafka applications architectural patterns where Kafka shines (decoupled microservice event buses, Outbox + CDC avoiding dual writes, IoT telemetry ingestion, fraud stream scoring) and anti-use-cases (millions of ephemeral per-user topics). Even if you have never seen this concept before, your trainer explains the real-life problem first, writes clean Apache Kafka 3.8 (KRaft Mode), Java 21 Kafka Clients API, Idempotent & Transactional Producers code live on screen, and shows what breaks in production if this step is skipped.
🎯 For What Purpose: To understand and apply Apache Kafka Use Cases — Transactional Outbox, Event Sourcing, CQRS & Real-Time Telemetry in real Kafka systems — specifically: Architectural patterns where Kafka shines (decoupled microservice event buses, Outbox + CDC avoiding dual writes, IoT telemetry ingestion, fraud stream scoring) and anti-use-cases (millions of ephemeral per-user topics), so your code stays reliable, fast, and easy to maintain in production.
Apache Kafka has the following use cases which best describes the events to use it: 1) Message Broker Apache Kafka is one of the trending technology that is capable to handle a large amount of similar type of messages or data. This capability enables Kafka to give high throughput value. Also, Kafka is a publish-subscribe messaging system that makes users to read and write data more conveniently. 2) Metrics Apache Kaf...
Apache Kafka Use Cases — Transactional Outbox, Event Sourcing, CQRS & Real-Time Telemetry — Practical Assignment
Implement a production-ready Apache Kafka, KRaft, Event Streaming & Kafka Streams solution demonstrating Apache Kafka Use Cases — Transactional Outbox, Event Sourcing, CQRS & Real-Time Telemetry using...
Apache Kafka Use Cases — Transactional Outbox, Event Sourcing, CQRS & Real-Time Telemetry — Hands-On Lab Task
import org.apache.kafka.common.utils.Utils;
import java.nio.charset.StandardCharsets;
public class AggregatePartitionRouter {
public static int targetPartition(String aggregateId, int numPartitions) {
byte[] keyBytes = aggregateId.getBytes(StandardCharsets.UTF_8);
return Utils.toPositive(Utils.murmur2(keyBytes)) % numPartitions;
}
public static void main(String[] args) {
System.out.println("acct-42 -> p" + targetPartition("acct-42", 12) + " | deterministic=" + (targetPartition("a...
💡 Self-Explanatory Overview: In simple, everyday terms, Installing & Bootstrapping Apache Kafka in KRaft Mode (`kafka-storage.sh` & Listener Security) teaches you how Kafka applications step-by-step KRaft setup: generating a cluster UUID, formatting `log.dirs` (`meta.properties`), understanding `listeners` vs `advertised.listeners`, and tuning Linux `vm.swappiness=1` & `ulimit -n 100000`. Even if you have never seen this concept before, your trainer explains the real-life problem first, writes clean Apache Kafka 3.8 (KRaft Mode), Java 21 Kafka Clients API, Idempotent & Transactional Producers code live on screen, and shows what breaks in production if this step is skipped.
🎯 For What Purpose: To understand and apply Installing & Bootstrapping Apache Kafka in KRaft Mode (`kafka-storage.sh` & Listener Security) in real Kafka systems — specifically: Step-by-step KRaft setup: generating a cluster UUID, formatting `log.dirs` (`meta.properties`), understanding `listeners` vs `advertised.listeners`, and tuning Linux `vm.swappiness=1` & `ulimit -n 100000`, so your code stays reliable, fast, and easy to maintain in production.
Apache Kafka is supportable on Windows, macOS, as well as on Linux environment. Each operating system has its own steps/process to install Apache Kafka. Reaching this stage means all aspirants might be clear with the basic concepts of Apache Kafka. Here, in this section, we will discuss the installation process on Windows, setting the path, and starting the zookeeper and Kafka server. Installing Apache Kafka on Windo...
Installing & Bootstrapping Apache Kafka in KRaft Mode (`kafka-storage.sh` & Listener Security) — Practical Assignment
Implement a production-ready Apache Kafka, KRaft, Event Streaming & Kafka Streams solution demonstrating Installing & Bootstrapping Apache Kafka in KRaft Mode (`kafka-storage.sh` & Listener Security)...
Installing & Bootstrapping Apache Kafka in KRaft Mode (`kafka-storage.sh` & Listener Security) — Hands-On Lab Task
import org.apache.kafka.common.Uuid;
import java.util.Properties;
public class KraftBrokerConfigCheck {
public static void main(String[] args) {
Properties p = new Properties();
p.setProperty("process.roles", "broker,controller");
p.setProperty("node.id", "1");
p.setProperty("controller.quorum.voters", "1@kafka1:9093,2@kafka2:9093,3@kafka3:9093");
boolean validUuid = Uuid.fromString("MkU3OEVBNTcwNTJENDM2Qk").toString().length() == 22;
System.out.println("Roles=" +...
Automate formatting and validating a 3-node combined/isolated KRaft cluster configuration with deterministic cluster UUIDs, advertised listeners, and JVM G1GC tuning.
Module Learning & Hands-On Objectives
💡 Self-Explanatory Overview: In simple, everyday terms, Kafka Topics Deep Dive — Partitions, Log Segments, Retention Policies & Key Compaction teaches you how Kafka applications how topics split into ordered immutable partitions, how active segments roll at `segment.bytes` / `segment.ms`, and how log compaction retains the latest value per key while purging keys marked with a `null`-payload tombstone. Even if you have never seen this concept before, your trainer explains the real-life problem first, writes clean Apache Kafka 3.8 (KRaft Mode), Java 21 Kafka Clients API, Idempotent & Transactional Producers code live on screen, and shows what breaks in production if this step is skipped.
🎯 For What Purpose: To understand and apply Kafka Topics Deep Dive — Partitions, Log Segments, Retention Policies & Key Compaction in real Kafka systems — specifically: How topics split into ordered immutable partitions, how active segments roll at `segment.bytes` / `segment.ms`, and how log compaction retains the latest value per key while purging keys marked with a `null`-payload tombstone, so your code stays reliable, fast, and easy to maintain in production.
In the previous section, we have taken a brief introduction about Apache Kafka, messaging system, as well as the streaming process. Here, we will discuss the basic concepts and the role of Kafka. Topics Generally, a topic refers to a particular heading or a name given to some specific inter-related ideas. In Kafka, the word topic refers to a category or a common name used to store and publish a particular stream of d...
Kafka Topics Deep Dive — Partitions, Log Segments, Retention Policies & Key Compaction — Practical Assignment
Implement a production-ready Apache Kafka, KRaft, Event Streaming & Kafka Streams solution demonstrating Kafka Topics Deep Dive — Partitions, Log Segments, Retention Policies & Key Compaction using To...
Kafka Topics Deep Dive — Partitions, Log Segments, Retention Policies & Key Compaction — Hands-On Lab Task
import org.apache.kafka.clients.admin.NewTopic;
import org.apache.kafka.common.config.TopicConfig;
import java.util.Map;
public class CompactedTopicSpec {
public static void main(String[] args) {
NewTopic topic = new NewTopic("user.profiles.v1", 12, (short) 3).configs(Map.of(
TopicConfig.CLEANUP_POLICY_CONFIG, TopicConfig.CLEANUP_POLICY_COMPACT,
TopicConfig.MIN_IN_SYNC_REPLICAS_CONFIG, "2"
));
System.out.println(topic.name() + " | p=" + topic.numPartitions() + " |...
💡 Self-Explanatory Overview: In simple, everyday terms, Creating & Managing Kafka Topics (`kafka-topics.sh` & Idempotent Java `AdminClient`) teaches you how Kafka applications creating, describing, and altering topics safely in production using `kafka-topics.sh --bootstrap-server` and `Admin.createTopics()`, plus why `auto.create.topics.enable=false` is mandatory in enterprise clusters. Even if you have never seen this concept before, your trainer explains the real-life problem first, writes clean Apache Kafka 3.8 (KRaft Mode), Java 21 Kafka Clients API, Idempotent & Transactional Producers code live on screen, and shows what breaks in production if this step is skipped.
🎯 For What Purpose: To understand and apply Creating & Managing Kafka Topics (`kafka-topics.sh` & Idempotent Java `AdminClient`) in real Kafka systems — specifically: Creating, describing, and altering topics safely in production using `kafka-topics.sh --bootstrap-server` and `Admin.createTopics()`, plus why `auto.create.topics.enable=false` is mandatory in enterprise clusters, so your code stays reliable, fast, and easy to maintain in production.
In this section, the user will learn to create topics using Command Line Interface(CLI) on Windows. There are following steps used to create a topic: Step1: Initially, make sure that both zookeeper, as well as the Kafka server, should be started. Step2: Type 'kafka-topics -zookeeper localhost:2181 -topic-create' on the console and press enter. Here, the name of the topic is 'myfirst' kafka-topics...
Creating & Managing Kafka Topics (`kafka-topics.sh` & Idempotent Java `AdminClient`) — Practical Assignment
Implement a production-ready Apache Kafka, KRaft, Event Streaming & Kafka Streams solution demonstrating Creating & Managing Kafka Topics (`kafka-topics.sh` & Idempotent Java `AdminClient`) using kafk...
Creating & Managing Kafka Topics (`kafka-topics.sh` & Idempotent Java `AdminClient`) — Hands-On Lab Task
import org.apache.kafka.clients.admin.*;
import org.apache.kafka.common.errors.TopicExistsException;
import java.util.*;
import java.util.concurrent.ExecutionException;
public class SafeTopicCreator {
public static String ensureTopic(Admin admin, NewTopic spec) throws InterruptedException {
try { admin.createTopics(List.of(spec)).all().get(); return "CREATED:" + spec.name(); }
catch (ExecutionException e) { if (e.getCause() instanceof TopicExistsException) return "EXISTS:" + spec.name(); throw n...
Build a Java `AdminClient` provisioning tool that creates time-retained event topics and compacted entity-snapshot topics while rejecting unsafe replication factors or partition reductions.
Module Learning & Hands-On Objectives
💡 Self-Explanatory Overview: In simple, everyday terms, Kafka Topic Replication — Leaders, Followers, ISR, High Watermark & Leader Epoch teaches you how Kafka applications how follower brokers pull-replicate from partition leaders, when slow followers drop out of the In-Sync Replica (`ISR`) set (`replica.lag.time.max.ms`), why consumers only read up to the High Watermark (`HW`), and why Leader Epoch prevents log truncation bugs. Even if you have never seen this concept before, your trainer explains the real-life problem first, writes clean Apache Kafka 3.8 (KRaft Mode), Java 21 Kafka Clients API, Idempotent & Transactional Producers code live on screen, and shows what breaks in production if this step is skipped.
🎯 For What Purpose: To understand and apply Kafka Topic Replication — Leaders, Followers, ISR, High Watermark & Leader Epoch in real Kafka systems — specifically: How follower brokers pull-replicate from partition leaders, when slow followers drop out of the In-Sync Replica (`ISR`) set (`replica.lag.time.max.ms`), why consumers only read up to the High Watermark (`HW`), and why Leader Epoch prevents log truncation bugs, so your code stays reliable, fast, and easy to maintain in production.
next → ← prevKafka Topic ReplicationLast Updated : 17 Mar 2025Apache Kafka is a distributed software system in the Big Data world. Thus, for such a system, there is a requirement to have copies of the stored data. In Kafka, each broker contains some sort of data. But, what if the broker or the machine fails down? The data will be lost. Precautionary, Apache Kafka enables a feature of replication to secure data loss e...
Kafka Topic Replication — Leaders, Followers, ISR, High Watermark & Leader Epoch — Practical Assignment
Implement a production-ready Apache Kafka, KRaft, Event Streaming & Kafka Streams solution demonstrating Kafka Topic Replication — Leaders, Followers, ISR, High Watermark & Leader Epoch using replicat...
Kafka Topic Replication — Leaders, Followers, ISR, High Watermark & Leader Epoch — Hands-On Lab Task
public class ReplicationDurabilityVerifier {
public static boolean canWriteAndSurviveLoss(int rf, int minIsr, int liveBrokers, String acks) {
boolean quorumMet = "all".equals(acks) && liveBrokers >= minIsr && minIsr >= 2 && rf >= 3;
return quorumMet && (rf - minIsr >= 1);
}
public static void main(String[] args) {
System.out.println("RF=3,minISR=2,live=2 -> writable=" + canWriteAndSurviveLoss(3, 2, 2, "all"));
System.out.println("RF=3,minISR=3,live=2 -> writable=" + canWr...
💡 Self-Explanatory Overview: In simple, everyday terms, Apache Kafka Producer Architecture — Serializer, Partitioner, `RecordAccumulator` & Idempotence teaches you how Kafka applications tracing `KafkaProducer.send()` across Interceptor -> Serializer -> Partitioner (Sticky Partitioner for keyless records!) -> `RecordAccumulator` `ProducerBatch` deque -> `Sender` network I/O thread, plus PID + Sequence Number idempotence. Even if you have never seen this concept before, your trainer explains the real-life problem first, writes clean Apache Kafka 3.8 (KRaft Mode), Java 21 Kafka Clients API, Idempotent & Transactional Producers code live on screen, and shows what breaks in production if this step is skipped.
🎯 For What Purpose: To understand and apply Apache Kafka Producer Architecture — Serializer, Partitioner, `RecordAccumulator` & Idempotence in real Kafka systems — specifically: Tracing `KafkaProducer.send()` across Interceptor -> Serializer -> Partitioner (Sticky Partitioner for keyless records!) -> `RecordAccumulator` `ProducerBatch` deque -> `Sender` network I/O thread, plus PID + Sequence Number idempotence, so your code stays reliable, fast, and easy to maintain in production.
A producer is the one which publishes or writes data to the topics within different partitions. Producers automatically know that, what data should be written to which partition and broker. The user does not require to specify the broker and the partition. How does the producer write data to the cluster? A producer uses following strategie//s to write data to the cluster: Message Keys Acknowledgment Message Keys Apac...
Apache Kafka Producer Architecture — Serializer, Partitioner, `RecordAccumulator` & Idempotence — Practical Assignment
Implement a production-ready Apache Kafka, KRaft, Event Streaming & Kafka Streams solution demonstrating Apache Kafka Producer Architecture — Serializer, Partitioner, `RecordAccumulator` & Idempotence...
Apache Kafka Producer Architecture — Serializer, Partitioner, `RecordAccumulator` & Idempotence — Hands-On Lab Task
import org.apache.kafka.clients.producer.ProducerConfig;
import java.util.Properties;
public class HardenedProducerProps {
public static Properties build() {
Properties p = new Properties();
p.put(ProducerConfig.ACKS_CONFIG, "all");
p.put(ProducerConfig.ENABLE_IDEMPOTENCE_CONFIG, "true");
p.put(ProducerConfig.COMPRESSION_TYPE_CONFIG, "lz4");
p.put(ProducerConfig.LINGER_MS_CONFIG, "10");
return p;
}
public static void main(String[] args) { Properties p = bu...
Configure and benchmark a financial ledger producer pipeline that guarantees durability across single-broker crashes while maximizing batch compression efficiency.
Module Learning & Hands-On Objectives
💡 Self-Explanatory Overview: In simple, everyday terms, Sending Data to Kafka Topics — CLI Key Parsing, Sync vs Async Delivery & `delivery.timeout.ms` teaches you how Kafka applications using `kafka-console-producer.sh` with `--property parse.key=true --property key.separator=:`, understanding why calling `producer.send(rec).get()` on every message kills batching throughput by 100x, and bounding end-to-end latency with `delivery.timeout.ms`. Even if you have never seen this concept before, your trainer explains the real-life problem first, writes clean Apache Kafka 3.8 (KRaft Mode), Java 21 Kafka Clients API, Idempotent & Transactional Producers code live on screen, and shows what breaks in production if this step is skipped.
🎯 For What Purpose: To understand and apply Sending Data to Kafka Topics — CLI Key Parsing, Sync vs Async Delivery & `delivery.timeout.ms` in real Kafka systems — specifically: Using `kafka-console-producer.sh` with `--property parse.key=true --property key.separator=:`, understanding why calling `producer.send(rec).get()` on every message kills batching throughput by 100x, and bounding end-to-end latency with `delivery.timeout.ms`, so your code stays reliable, fast, and easy to maintain in production.
Kafka Console Producer In order to send data to the Kafka topic, a producer is required. The role of the producer is to send or write data/messages to the Kafka topics. In this section, we will learn how a producer sends messages to the Kafka topics. There are following steps used to launch a producer: Step1: Start the zookeeper as well as the kafka server. Step2: Type the command: 'kafka-console-producer'...
Sending Data to Kafka Topics — CLI Key Parsing, Sync vs Async Delivery & `delivery.timeout.ms` — Practical Assignment
Implement a production-ready Apache Kafka, KRaft, Event Streaming & Kafka Streams solution demonstrating Sending Data to Kafka Topics — CLI Key Parsing, Sync vs Async Delivery & `delivery.timeout.ms`...
Sending Data to Kafka Topics — CLI Key Parsing, Sync vs Async Delivery & `delivery.timeout.ms` — Hands-On Lab Task
public class ProducerTimeoutValidator {
public static boolean isValid(int lingerMs, int requestTimeoutMs, int deliveryTimeoutMs) {
return deliveryTimeoutMs >= (lingerMs + requestTimeoutMs);
}
public static void main(String[] args) {
System.out.println("120000 >= 10 + 30000 -> " + isValid(10, 30000, 120000));
System.out.println("15000 >= 50 + 30000 -> " + isValid(50, 30000, 15000));
}
}
💡 Self-Explanatory Overview: In simple, everyday terms, Creating a Kafka Producer in Java — Try-With-Resources, `StringSerializer` & Transactional Sends teaches you how Kafka applications writing idiomatic Java 21 `KafkaProducer<String, String>` code with explicit `StringSerializer` classes, deterministic keys, atomic multi-partition transactions (`transactional.id`, `initTransactions`, `commitTransaction`), and clean resource closure. Even if you have never seen this concept before, your trainer explains the real-life problem first, writes clean Apache Kafka 3.8 (KRaft Mode), Java 21 Kafka Clients API, Idempotent & Transactional Producers code live on screen, and shows what breaks in production if this step is skipped.
🎯 For What Purpose: To understand and apply Creating a Kafka Producer in Java — Try-With-Resources, `StringSerializer` & Transactional Sends in real Kafka systems — specifically: Writing idiomatic Java 21 `KafkaProducer<String, String>` code with explicit `StringSerializer` classes, deterministic keys, atomic multi-partition transactions (`transactional.id`, `initTransactions`, `commitTransaction`), and clean resource closure, so your code stays reliable, fast, and easy to maintain in production.
In the last section, we learned the basic steps to create a Kafka Project. Now, before creating a Kafka producer in java, we need to define the essential Project dependencies. In our project, there will be two dependencies required: Kafka Dependencies Logging Dependencies, i.e., SLF4J Logger. There are following steps required to set the dependencies: Step1: The build tool Maven contains a 'pom.xml' file. T...
Creating a Kafka Producer in Java — Try-With-Resources, `StringSerializer` & Transactional Sends — Practical Assignment
Implement a production-ready Apache Kafka, KRaft, Event Streaming & Kafka Streams solution demonstrating Creating a Kafka Producer in Java — Try-With-Resources, `StringSerializer` & Transactional Send...
Creating a Kafka Producer in Java — Try-With-Resources, `StringSerializer` & Transactional Sends — Hands-On Lab Task
import org.apache.kafka.clients.producer.*;
import org.apache.kafka.common.serialization.StringSerializer;
public class JavaProducerVerification {
public static void main(String[] args) {
try (MockProducer<String, String> producer = new MockProducer<>(true, new StringSerializer(), new StringSerializer())) {
producer.send(new ProducerRecord<>("payments.v1", "pay-900", "INR:999"));
ProducerRecord<String, String> sent = producer.history().get(0);
System.out.println("Sent...
Build a Java 21 telemetry producer service that ingests 50,000 keyed JSON/Avro events asynchronously, enforces bounded memory backpressure (`max.block.ms`), and flushes all in-flight batches cleanly on JVM shutdown.
Module Learning & Hands-On Objectives
💡 Self-Explanatory Overview: In simple, everyday terms, Kafka Producer Callbacks — `RecordMetadata`, Retriable vs Non-Retriable Errors & I/O Thread Safety teaches you how Kafka applications inspecting partition, offset, and timestamp via `RecordMetadata` inside `Callback`, distinguishing retriable errors (`LeaderNotAvailableException`) from fatal ones (`RecordTooLargeException`), and keeping callbacks non-blocking. Even if you have never seen this concept before, your trainer explains the real-life problem first, writes clean Apache Kafka 3.8 (KRaft Mode), Java 21 Kafka Clients API, Idempotent & Transactional Producers code live on screen, and shows what breaks in production if this step is skipped.
🎯 For What Purpose: To understand and apply Kafka Producer Callbacks — `RecordMetadata`, Retriable vs Non-Retriable Errors & I/O Thread Safety in real Kafka systems — specifically: Inspecting partition, offset, and timestamp via `RecordMetadata` inside `Callback`, distinguishing retriable errors (`LeaderNotAvailableException`) from fatal ones (`RecordTooLargeException`), and keeping callbacks non-blocking, so your code stays reliable, fast, and easy to maintain in production.
Producer without Keys In the previous section, we saw how a producer sends data to Kafka. In order to understand more deeply, i.e., whether the data was correctly produced, where it was produced, about its offset and partition value, etc. Let's learn more. For performing the callbacks, the user needs to implement a callback function. This function is implemented for asynchronously handling the request completion...
Kafka Producer Callbacks — `RecordMetadata`, Retriable vs Non-Retriable Errors & I/O Thread Safety — Practical Assignment
Implement a production-ready Apache Kafka, KRaft, Event Streaming & Kafka Streams solution demonstrating Kafka Producer Callbacks — `RecordMetadata`, Retriable vs Non-Retriable Errors & I/O Thread Saf...
Kafka Producer Callbacks — `RecordMetadata`, Retriable vs Non-Retriable Errors & I/O Thread Safety — Hands-On Lab Task
import org.apache.kafka.clients.producer.*;
import org.apache.kafka.common.serialization.StringSerializer;
public class ProducerCallbackDemo {
public static void main(String[] args) {
try (MockProducer<String, String> mp = new MockProducer<>(true, new StringSerializer(), new StringSerializer())) {
mp.send(new ProducerRecord<>("audit.v1", "k1", "login"), (meta, ex) -> {
if (ex == null) System.out.println("ACK topic=" + meta.topic() + " p=" + meta.partition() + " off=" + meta.o...
💡 Self-Explanatory Overview: In simple, everyday terms, Kafka Consumers & Consumer Groups — Partition Ownership, Heartbeats & `CooperativeStickyAssignor` teaches you how Kafka applications how `group.id` turns competing consumers into a scalable horizontal worker pool while distinct `group.id`s act as independent pub-sub subscribers, `GroupCoordinator` & `__consumer_offsets`, and `session.timeout.ms` vs `max.poll.interval.ms`. Even if you have never seen this concept before, your trainer explains the real-life problem first, writes clean Apache Kafka 3.8 (KRaft Mode), Java 21 Kafka Clients API, Idempotent & Transactional Producers code live on screen, and shows what breaks in production if this step is skipped.
🎯 For What Purpose: To understand and apply Kafka Consumers & Consumer Groups — Partition Ownership, Heartbeats & `CooperativeStickyAssignor` in real Kafka systems — specifically: How `group.id` turns competing consumers into a scalable horizontal worker pool while distinct `group.id`s act as independent pub-sub subscribers, `GroupCoordinator` & `__consumer_offsets`, and `session.timeout.ms` vs `max.poll.interval.ms`, so your code stays reliable, fast, and easy to maintain in production.
A consumer is the one that consumes or reads data from the Kafka cluster via a topic. A consumer also knows that from which broker, it should read the data. The consumer reads the data within each partition in an orderly manner. It means that the consumer is not supposed to read data from offset 1 before reading from offset 0. Also, a consumer can easily read data from multiple brokers at the same time For example, t...
Kafka Consumers & Consumer Groups — Partition Ownership, Heartbeats & `CooperativeStickyAssignor` — Practical Assignment
Implement a production-ready Apache Kafka, KRaft, Event Streaming & Kafka Streams solution demonstrating Kafka Consumers & Consumer Groups — Partition Ownership, Heartbeats & `CooperativeStickyAssigno...
Kafka Consumers & Consumer Groups — Partition Ownership, Heartbeats & `CooperativeStickyAssignor` — Hands-On Lab Task
import java.util.*;
public class ConsumerGroupAllocationSim {
public static Map<String, Integer> assignCount(int partitions, List<String> consumers) {
Map<String, Integer> counts = new LinkedHashMap<>();
for (String c : consumers) counts.put(c, 0);
for (int p = 0; p < partitions; p++) { String owner = consumers.get(p % consumers.size()); if (p < partitions) counts.put(owner, counts.get(owner) + 1); }
return counts;
}
public static void main(String[] args) {
System...
Build an async producer callback handler that routes failed records to a DLQ without blocking `Sender` I/O, paired with a static-member `CooperativeStickyAssignor` consumer fleet.
Module Learning & Hands-On Objectives
💡 Self-Explanatory Overview: In simple, everyday terms, Kafka Console Consumer — Key/Header Formatting, `--from-beginning` & `read_committed` Isolation teaches you how Kafka applications inspecting live topics cleanly with `DefaultMessageFormatter` properties (`print.key=true`, `print.offset=true`, `print.timestamp=true`, `print.headers=true`), understanding `auto.offset.reset=earliest|latest`, and filtering aborted transactions via `--isolation-level read_committed`. Even if you have never seen this concept before, your trainer explains the real-life problem first, writes clean Apache Kafka 3.8 (KRaft Mode), Java 21 Kafka Clients API, Idempotent & Transactional Producers code live on screen, and shows what breaks in production if this step is skipped.
🎯 For What Purpose: To understand and apply Kafka Console Consumer — Key/Header Formatting, `--from-beginning` & `read_committed` Isolation in real Kafka systems — specifically: Inspecting live topics cleanly with `DefaultMessageFormatter` properties (`print.key=true`, `print.offset=true`, `print.timestamp=true`, `print.headers=true`), understanding `auto.offset.reset=earliest|latest`, and filtering aborted transactions via `--isolation-level read_committed`, so your code stays reliable, fast, and easy to maintain in production.
In this section, the users will learn how a consumer consumes or reads the messages from the Kafka topics. There are following steps taken by the consumer to consume the messages from the topic: Step 1: Start the zookeeper as well as the kafka server initially. Step2: Type the command: 'kafka-console-consumer' on the command line. This will help the user to read the data from the Kafka topic and output it t...
Kafka Console Consumer — Key/Header Formatting, `--from-beginning` & `read_committed` Isolation — Practical Assignment
Implement a production-ready Apache Kafka, KRaft, Event Streaming & Kafka Streams solution demonstrating Kafka Console Consumer — Key/Header Formatting, `--from-beginning` & `read_committed` Isolation...
Kafka Console Consumer — Key/Header Formatting, `--from-beginning` & `read_committed` Isolation — Hands-On Lab Task
import java.util.List;
public class ConsoleConsumerCommandBuilder {
public static String buildReadCommittedCmd(String bootstrap, String topic) {
List<String> args = List.of("kafka-console-consumer.sh", "--bootstrap-server", bootstrap,
"--topic", topic, "--isolation-level", "read_committed", "--property", "print.key=true");
return String.join(" ", args);
}
public static void main(String[] args) {
System.out.println(buildReadCommittedCmd("kafka1:9092", "ledger.tx.v1"));...
💡 Self-Explanatory Overview: In simple, everyday terms, Kafka Consumer Group CLI — `LAG` Diagnostics, Hot-Key Skew & Safe `--reset-offsets --dry-run` teaches you how Kafka applications using `kafka-consumer-groups.sh --describe` to inspect `CURRENT-OFFSET`, `LOG-END-OFFSET`, `LAG`, and `CONSUMER-ID`, spotting hot-partition key skew when 1 partition lags by millions while 11 sit at `0`, and safely rewinding offsets. Even if you have never seen this concept before, your trainer explains the real-life problem first, writes clean Apache Kafka 3.8 (KRaft Mode), Java 21 Kafka Clients API, Idempotent & Transactional Producers code live on screen, and shows what breaks in production if this step is skipped.
🎯 For What Purpose: To understand and apply Kafka Consumer Group CLI — `LAG` Diagnostics, Hot-Key Skew & Safe `--reset-offsets --dry-run` in real Kafka systems — specifically: Using `kafka-consumer-groups.sh --describe` to inspect `CURRENT-OFFSET`, `LOG-END-OFFSET`, `LAG`, and `CONSUMER-ID`, spotting hot-partition key skew when 1 partition lags by millions while 11 sit at `0`, and safely rewinding offsets, so your code stays reliable, fast, and easy to maintain in production.
Generally, a Kafka consumer belongs to a particular consumer group. A consumer group basically represents the name of an application. In order to consume messages in a consumer group, '-group' command is used. Let' see how consumers will consume messages from Kafka topics: Step1: Open the Windows command prompt. Step2: Use the '-group' command as: 'kafka-console-consumer -bootstrap-serve...
Kafka Consumer Group CLI — `LAG` Diagnostics, Hot-Key Skew & Safe `--reset-offsets --dry-run` — Practical Assignment
Implement a production-ready Apache Kafka, KRaft, Event Streaming & Kafka Streams solution demonstrating Kafka Consumer Group CLI — `LAG` Diagnostics, Hot-Key Skew & Safe `--reset-offsets --dry-run` u...
Kafka Consumer Group CLI — `LAG` Diagnostics, Hot-Key Skew & Safe `--reset-offsets --dry-run` — Hands-On Lab Task
import java.util.Map;
public class ConsumerLagDiagnostics {
public static void main(String[] args) {
Map<Integer, Long> lagByPartition = Map.of(0, 2L, 1, 0L, 2, 485000L, 3, 1L);
long totalLag = lagByPartition.values().stream().mapToLong(Long::longValue).sum();
long maxLag = lagByPartition.values().stream().mapToLong(Long::longValue).max().orElse(0L);
boolean hotPartitionSkew = maxLag > (totalLag * 0.9);
System.out.println("TotalLag=" + totalLag + " | MaxLag=" + maxLag + "...
Create an operational CLI + Java AdminClient diagnostic utility that detects skewed consumer-group partition lag (hot keys) and validates safe `--dry-run` offset rewinds after a bad downstream deployment.
Module Learning & Hands-On Objectives
💡 Self-Explanatory Overview: In simple, everyday terms, Creating a Kafka Consumer in Java — Poll Loop, `enable.auto.commit=false` & `WakeupException` teaches you how Kafka applications why `KafkaConsumer` is deliberately **NOT thread-safe**, why `enable.auto.commit=true` loses messages if a worker crashes after `poll()` auto-commits an unprocessed batch, and how `commitAsync` + `onPartitionsRevoked` `commitSync` delivers clean at-least-once processing. Even if you have never seen this concept before, your trainer explains the real-life problem first, writes clean Apache Kafka 3.8 (KRaft Mode), Java 21 Kafka Clients API, Idempotent & Transactional Producers code live on screen, and shows what breaks in production if this step is skipped.
🎯 For What Purpose: To understand and apply Creating a Kafka Consumer in Java — Poll Loop, `enable.auto.commit=false` & `WakeupException` in real Kafka systems — specifically: Why `KafkaConsumer` is deliberately **NOT thread-safe**, why `enable.auto.commit=true` loses messages if a worker crashes after `poll()` auto-commits an unprocessed batch, and how `commitAsync` + `onPartitionsRevoked` `commitSync` delivers clean at-least-once processing, so your code stays reliable, fast, and easy to maintain in production.
In the previous section, we learned to create a producer in Java. In this section, we will learn to implement a Kafka consumer in Java. There are following steps taken to create a consumer: Create Logger Create consumer properties. Create a consumer. Subscribe the consumer to a specific topic. Poll for some new data Let's discuss each step to learn consumer implementation in java. Creating Logger The logger is i...
Creating a Kafka Consumer in Java — Poll Loop, `enable.auto.commit=false` & `WakeupException` — Practical Assignment
Implement a production-ready Apache Kafka, KRaft, Event Streaming & Kafka Streams solution demonstrating Creating a Kafka Consumer in Java — Poll Loop, `enable.auto.commit=false` & `WakeupException` u...
Creating a Kafka Consumer in Java — Poll Loop, `enable.auto.commit=false` & `WakeupException` — Hands-On Lab Task
import org.apache.kafka.clients.consumer.*;
import org.apache.kafka.common.TopicPartition;
import java.time.Duration;
import java.util.*;
public class ManualCommitConsumerDemo {
public static void main(String[] args) {
try (MockConsumer<String, String> c = new MockConsumer<>(OffsetResetStrategy.EARLIEST)) {
TopicPartition tp = new TopicPartition("orders.v1", 0);
c.assign(List.of(tp)); c.updateBeginningOffsets(Map.of(tp, 0L));
c.addRecord(new ConsumerRecord<>("orders.v...
💡 Self-Explanatory Overview: In simple, everyday terms, Multi-Cluster Kafka Architectures — MirrorMaker 2, Active-Active Replication & Stretch Clusters teaches you how Kafka applications designing geo-distributed topologies: Hub-and-Spoke edge aggregation, Active-Passive DR, Active-Active bi-directional replication with MirrorMaker 2 topic prefixing (`us-east.orders`) to prevent infinite loops, and `RemoteClusterUtils` offset translation. Even if you have never seen this concept before, your trainer explains the real-life problem first, writes clean Apache Kafka 3.8 (KRaft Mode), Java 21 Kafka Clients API, Idempotent & Transactional Producers code live on screen, and shows what breaks in production if this step is skipped.
🎯 For What Purpose: To understand and apply Multi-Cluster Kafka Architectures — MirrorMaker 2, Active-Active Replication & Stretch Clusters in real Kafka systems — specifically: Designing geo-distributed topologies: Hub-and-Spoke edge aggregation, Active-Passive DR, Active-Active bi-directional replication with MirrorMaker 2 topic prefixing (`us-east.orders`) to prevent infinite loops, and `RemoteClusterUtils` offset translation, so your code stays reliable, fast, and easy to maintain in production.
We have studied that there can be multiple partitions, topics as well as brokers in a single Kafka Cluster. Thus, with growing Apache Kafka deployments, it is beneficial to have multiple clusters. In this section, we will discuss about multiple clusters, its advantages, and many more. A Kafka cluster is a cluster which is composed of multiple brokers with their respective partitions. A multiple Kafka cluster means co...
Multi-Cluster Kafka Architectures — MirrorMaker 2, Active-Active Replication & Stretch Clusters — Practical Assignment
Implement a production-ready Apache Kafka, KRaft, Event Streaming & Kafka Streams solution demonstrating Multi-Cluster Kafka Architectures — MirrorMaker 2, Active-Active Replication & Stretch Clusters...
Multi-Cluster Kafka Architectures — MirrorMaker 2, Active-Active Replication & Stretch Clusters — Hands-On Lab Task
import org.apache.kafka.connect.mirror.DefaultReplicationPolicy;
public class MirrorMaker2PolicyCheck {
public static void main(String[] args) {
DefaultReplicationPolicy policy = new DefaultReplicationPolicy();
String remoteTopic = policy.formatRemoteTopic("mum-primary", "orders.v1");
String source = policy.topicSource(remoteTopic);
String upstream = policy.upstreamTopic(remoteTopic);
System.out.println("Remote=" + remoteTopic + " | Source=" + source + " | Upstream=" + up...
Implement a production Java `KafkaConsumer` poll loop with `enable.auto.commit=false`, rebalance-safe offset commits, `wakeup()` shutdown, and a MirrorMaker 2 cross-region DR config.
Module Learning & Hands-On Objectives
💡 Self-Explanatory Overview: In simple, everyday terms, Kafka Connect & Debezium CDC — Distributed Workers, Internal Compacted Topics, SMTs & DLQ teaches you how Kafka applications declarative Source & Sink connectors running in fault-tolerant Distributed Mode (`group.id`), the 3 compacted internal topics (`config.storage.topic`, `offset.storage.topic`, `status.storage.topic`), Debezium WAL/binlog Change Data Capture, Single Message Transforms (SMTs), and Dead Letter Queues. Even if you have never seen this concept before, your trainer explains the real-life problem first, writes clean Apache Kafka 3.8 (KRaft Mode), Java 21 Kafka Clients API, Idempotent & Transactional Producers code live on screen, and shows what breaks in production if this step is skipped.
🎯 For What Purpose: To understand and apply Kafka Connect & Debezium CDC — Distributed Workers, Internal Compacted Topics, SMTs & DLQ in real Kafka systems — specifically: Declarative Source & Sink connectors running in fault-tolerant Distributed Mode (`group.id`), the 3 compacted internal topics (`config.storage.topic`, `offset.storage.topic`, `status.storage.topic`), Debezium WAL/binlog Change Data Capture, Single Message Transforms (SMTs), and Dead Letter Queues, so your code stays reliable, fast, and easy to maintain in production.
Kafka Connect is a tool to reliably and scalably stream data between Kafka and other systems. It is an open-source component and framework to get Kafka connected with the external systems. There are connectors that help to move huge data sets into and out of the Kafka system. Kafka Connect is only used to copy the streamed data, thus its scope is not broad. It executes as an independent process for testing and a dist...
Kafka Connect & Debezium CDC — Distributed Workers, Internal Compacted Topics, SMTs & DLQ — Practical Assignment
Implement a production-ready Apache Kafka, KRaft, Event Streaming & Kafka Streams solution demonstrating Kafka Connect & Debezium CDC — Distributed Workers, Internal Compacted Topics, SMTs & DLQ using...
Kafka Connect & Debezium CDC — Distributed Workers, Internal Compacted Topics, SMTs & DLQ — Hands-On Lab Task
import java.util.LinkedHashMap;
import java.util.Map;
public class ConnectCdcSpecValidator {
public static void main(String[] args) {
Map<String, String> cfg = new LinkedHashMap<>();
cfg.put("connector.class", "io.debezium.connector.postgresql.PostgresConnector");
cfg.put("tasks.max", "1");
cfg.put("errors.tolerance", "all");
cfg.put("errors.deadletterqueue.topic.name", "connect.orders.dlq");
System.out.println("Connector=" + cfg.get("connector.class").substring(2...
💡 Self-Explanatory Overview: In simple, everyday terms, Kafka Stream Processing — Embedded `KafkaStreams` Topologies, `exactly_once_v2` & `TopologyTestDriver` teaches you how Kafka applications why Kafka Streams runs as an embedded Java library inside standard microservices (zero separate Spark/Flink processing cluster required!), DAG stream topologies (`StreamsBuilder`), StreamTasks mapped 1:1 to input partitions, and `exactly_once_v2` atomic read-state-write commits. Even if you have never seen this concept before, your trainer explains the real-life problem first, writes clean Apache Kafka 3.8 (KRaft Mode), Java 21 Kafka Clients API, Idempotent & Transactional Producers code live on screen, and shows what breaks in production if this step is skipped.
🎯 For What Purpose: To understand and apply Kafka Stream Processing — Embedded `KafkaStreams` Topologies, `exactly_once_v2` & `TopologyTestDriver` in real Kafka systems — specifically: Why Kafka Streams runs as an embedded Java library inside standard microservices (zero separate Spark/Flink processing cluster required!), DAG stream topologies (`StreamsBuilder`), StreamTasks mapped 1:1 to input partitions, and `exactly_once_v2` atomic read-state-write commits, so your code stays reliable, fast, and easy to maintain in production.
Till now, we learned about topics, partitions, sending data to Kafka, and consuming data from the Kafka. This could be a lower level of abstraction. Thus, a higher level of abstraction is required. This consequently introduces the concept of Kafka streams. Kafka Streams Generally, streams define the flow of data elements which are provided over time. In Apache Kafka, streams are the continuous real-time flow of the f...
Kafka Stream Processing — Embedded `KafkaStreams` Topologies, `exactly_once_v2` & `TopologyTestDriver` — Practical Assignment
Implement a production-ready Apache Kafka, KRaft, Event Streaming & Kafka Streams solution demonstrating Kafka Stream Processing — Embedded `KafkaStreams` Topologies, `exactly_once_v2` & `TopologyTest...
Kafka Stream Processing — Embedded `KafkaStreams` Topologies, `exactly_once_v2` & `TopologyTestDriver` — Hands-On Lab Task
import org.apache.kafka.common.serialization.Serdes;
import org.apache.kafka.streams.*;
import java.util.Properties;
public class HighValueStreamTopology {
public static void main(String[] args) {
StreamsBuilder b = new StreamsBuilder();
b.stream("payments.raw", Consumed.with(Serdes.String(), Serdes.Integer()))
.filter((k, amt) -> amt != null && amt >= 1000).mapValues(amt -> "ALERT:" + amt)
.to("payments.alerts", Produced.with(Serdes.String(), Serdes.String()));
P...
Design a Distributed Kafka Connect Debezium PostgreSQL Outbox connector config with DLQ error tolerance, feeding a Java `KafkaStreams` topology that flags accounts exceeding 5 high-value transactions per minute.
Module Learning & Hands-On Objectives
💡 Self-Explanatory Overview: In simple, everyday terms, Stream Processing Concepts — `KStream` vs `KTable` Duality, Event-Time Windows & RocksDB State teaches you how Kafka applications stream-Table Duality (`KStream` unbounded facts vs `KTable` latest-value mutable state vs `GlobalKTable` full-replica dimension joins), Event Time vs Ingestion/Processing Time, Tumbling/Hopping/Sliding/Session windows with `.grace()`, and RocksDB off-heap state stores backed by compacted changelog topics. Even if you have never seen this concept before, your trainer explains the real-life problem first, writes clean Apache Kafka 3.8 (KRaft Mode), Java 21 Kafka Clients API, Idempotent & Transactional Producers code live on screen, and shows what breaks in production if this step is skipped.
🎯 For What Purpose: To understand and apply Stream Processing Concepts — `KStream` vs `KTable` Duality, Event-Time Windows & RocksDB State in real Kafka systems — specifically: Stream-Table Duality (`KStream` unbounded facts vs `KTable` latest-value mutable state vs `GlobalKTable` full-replica dimension joins), Event Time vs Ingestion/Processing Time, Tumbling/Hopping/Sliding/Session windows with `.grace()`, and RocksDB off-heap state stores backed by compacted changelog topics, so your code stays reliable, fast, and easy to maintain in production.
There are the following concepts that a user should know about stream processing: Time It is essential as well as the most confusing concept. In stream processing, most operations rely on time. Therefore, a common notion of time is a typical task for such stream applications. Kafka Stream processing refers to following notions of time: Event Time: The time when an event had occurred, and the record was originally cre...
Stream Processing Concepts — `KStream` vs `KTable` Duality, Event-Time Windows & RocksDB State — Practical Assignment
Implement a production-ready Apache Kafka, KRaft, Event Streaming & Kafka Streams solution demonstrating Stream Processing Concepts — `KStream` vs `KTable` Duality, Event-Time Windows & RocksDB State...
Stream Processing Concepts — `KStream` vs `KTable` Duality, Event-Time Windows & RocksDB State — Hands-On Lab Task
import org.apache.kafka.common.serialization.Serdes;
import org.apache.kafka.streams.*;
import org.apache.kafka.streams.kstream.*;
import java.util.Properties;
public class KTableCountTopology {
public static void main(String[] args) {
StreamsBuilder b = new StreamsBuilder();
b.stream("clicks", Consumed.with(Serdes.String(), Serdes.String())).groupByKey().count().toStream().to("click.counts", Produced.with(Serdes.String(), Serdes.Long()));
Properties p = new Properties(); p.put(StreamsCo...
💡 Self-Explanatory Overview: In simple, everyday terms, Kafka Monitoring & SRE Observability — JMX Exporter, Critical Broker MBeans & Lag Alerting teaches you how Kafka applications exposing Kafka JMX MBeans to Prometheus & Grafana, monitoring P0 page-worthy alerts (`OfflinePartitionsCount > 0`, `ActiveControllerCount != 1`, sustained `UnderReplicatedPartitions > 0`), tracking `RequestHandlerAvgIdlePercent` / `NetworkProcessorAvgIdlePercent`, and time-based consumer lag SLAs. Even if you have never seen this concept before, your trainer explains the real-life problem first, writes clean Apache Kafka 3.8 (KRaft Mode), Java 21 Kafka Clients API, Idempotent & Transactional Producers code live on screen, and shows what breaks in production if this step is skipped.
🎯 For What Purpose: To understand and apply Kafka Monitoring & SRE Observability — JMX Exporter, Critical Broker MBeans & Lag Alerting in real Kafka systems — specifically: Exposing Kafka JMX MBeans to Prometheus & Grafana, monitoring P0 page-worthy alerts (`OfflinePartitionsCount > 0`, `ActiveControllerCount != 1`, sustained `UnderReplicatedPartitions > 0`), tracking `RequestHandlerAvgIdlePercent` / `NetworkProcessorAvgIdlePercent`, and time-based consumer lag SLAs, so your code stays reliable, fast, and easy to maintain in production.
Apache Kafka is a distributed system where a topic is partitioned as well as replicated across various nodes. It also supports fault tolerance as well as durability. There may be chances of troubleshooting. Therefore, it is required to manage and monitor different Kafka activities. Various Kafka monitoring tools are used to monitor and display the corrective actions. There are following activities performed under Kaf...
Kafka Monitoring & SRE Observability — JMX Exporter, Critical Broker MBeans & Lag Alerting — Practical Assignment
Implement a production-ready Apache Kafka, KRaft, Event Streaming & Kafka Streams solution demonstrating Kafka Monitoring & SRE Observability — JMX Exporter, Critical Broker MBeans & Lag Alerting usin...
Kafka Monitoring & SRE Observability — JMX Exporter, Critical Broker MBeans & Lag Alerting — Hands-On Lab Task
public class KafkaSreHealthEvaluator {
public static String evaluate(int offlinePartitions, int activeControllers, int underReplicated, double ioIdlePct) {
if (offlinePartitions > 0 || activeControllers != 1) return "P0_CRITICAL_OUTAGE";
if (underReplicated > 0 || ioIdlePct < 0.20) return "P1_DEGRADED_ISR_OR_IO";
return "HEALTHY_CLUSTER";
}
public static void main(String[] args) {
System.out.println("ClusterA -> " + evaluate(0, 1, 0, 0.72));
System.out.println("Cl...
Build an event-time tumbling-window revenue aggregator backed by RocksDB changelog state and `num.standby.replicas=1`, plus a Prometheus/JMX health evaluator alerting on cluster degradation.
Module Learning & Hands-On Objectives
💡 Self-Explanatory Overview: In simple, everyday terms, KRaft Consensus Metadata Quorum (Zero ZooKeeper) & ISR Replication teaches you how Kafka applications understand leader election, high watermarks, and why acks=all + min.insync.replicas=2 prevents data loss. Even if you have never seen this concept before, your trainer explains the real-life problem first, writes clean Apache Kafka 3.8 (KRaft Mode), Java 21 Kafka Clients API, Idempotent & Transactional Producers code live on screen, and shows what breaks in production if this step is skipped.
🎯 For What Purpose: To understand and apply KRaft Consensus Metadata Quorum (Zero ZooKeeper) & ISR Replication in real Kafka systems — specifically: Understand leader election, high watermarks, and why acks=all + min.insync.replicas=2 prevents data loss, so your code stays reliable, fast, and easy to maintain in production.
What Is KRaft Consensus Metadata Quorum (Zero ZooKeeper) & ISR Replication & Why Industry Teams Use ItIn Kafka Training, KRaft Consensus Metadata Quorum (Zero ZooKeeper) & ISR Replication exists for one clear real-world purpose: Understand leader election, high watermarks, and why acks=all + min.insync.replicas=2 prevents data loss. Even if you come from a non-technical background, we start with the every...
Hands-On Implementation: KRaft Consensus Metadata Quorum (Zero ZooKeeper) & ISR Replication
Build and verify a clean working module demonstrating KRaft Consensus Metadata Quorum (Zero ZooKeeper) & ISR Replication (Understand leader election, high watermarks, and why acks=all + min.insync.rep...
Live Lab Sprint: KRaft Consensus Metadata Quorum (Zero ZooKeeper) & ISR Replication
// KRaft Consensus Metadata Quorum (Zero ZooKeeper) & ISR Replication
// Purpose: Understand leader election, high watermarks, and why acks=all + min.insync.replicas=2 prevents data loss.
public record VerificationResult(boolean ok, String detail) {
public static VerificationResult verify(String input) {
if (input == null || input.isBlank()) throw new IllegalArgumentException("Missing input");
return new VerificationResult(true, input.trim());
}
}
💡 Self-Explanatory Overview: In simple, everyday terms, Idempotent Producers (PID + Sequence Numbers) & EOS Transactions teaches you how Kafka applications eliminate duplicate messages during network retries and atomic consume-transform-produce flows. Even if you have never seen this concept before, your trainer explains the real-life problem first, writes clean Apache Kafka 3.8 (KRaft Mode), Java 21 Kafka Clients API, Idempotent & Transactional Producers code live on screen, and shows what breaks in production if this step is skipped.
🎯 For What Purpose: To understand and apply Idempotent Producers (PID + Sequence Numbers) & EOS Transactions in real Kafka systems — specifically: Eliminate duplicate messages during network retries and atomic consume-transform-produce flows, so your code stays reliable, fast, and easy to maintain in production.
What Is Idempotent Producers (PID + Sequence Numbers) & EOS Transactions & Why Industry Teams Use ItIn Kafka Training, Idempotent Producers (PID + Sequence Numbers) & EOS Transactions exists for one clear real-world purpose: Eliminate duplicate messages during network retries and atomic consume-transform-produce flows. Even if you come from a non-technical background, we start with the everyday real-life...
Hands-On Implementation: Idempotent Producers (PID + Sequence Numbers) & EOS Transactions
Build and verify a clean working module demonstrating Idempotent Producers (PID + Sequence Numbers) & EOS Transactions (Eliminate duplicate messages during network retries and atomic consume-transform...
Live Lab Sprint: Idempotent Producers (PID + Sequence Numbers) & EOS Transactions
// Idempotent Producers (PID + Sequence Numbers) & EOS Transactions
// Purpose: Eliminate duplicate messages during network retries and atomic consume-transform-produce flows.
public record VerificationResult(boolean ok, String detail) {
public static VerificationResult verify(String input) {
if (input == null || input.isBlank()) throw new IllegalArgumentException("Missing input");
return new VerificationResult(true, input.trim());
}
}
💡 Self-Explanatory Overview: In simple, everyday terms, Partition Key Sizing, Hot-Key Skew Mitigation & Log Compaction teaches you how Kafka applications balance throughput across brokers while preserving strict per-customer event order. Even if you have never seen this concept before, your trainer explains the real-life problem first, writes clean Apache Kafka 3.8 (KRaft Mode), Java 21 Kafka Clients API, Idempotent & Transactional Producers code live on screen, and shows what breaks in production if this step is skipped.
🎯 For What Purpose: To understand and apply Partition Key Sizing, Hot-Key Skew Mitigation & Log Compaction in real Kafka systems — specifically: Balance throughput across brokers while preserving strict per-customer event order, so your code stays reliable, fast, and easy to maintain in production.
What Is Partition Key Sizing, Hot-Key Skew Mitigation & Log Compaction & Why Industry Teams Use ItIn Kafka Training, Partition Key Sizing, Hot-Key Skew Mitigation & Log Compaction exists for one clear real-world purpose: Balance throughput across brokers while preserving strict per-customer event order. Even if you come from a non-technical background, we start with the everyday real-life problem first be...
Hands-On Implementation: Partition Key Sizing, Hot-Key Skew Mitigation & Log Compaction
Build and verify a clean working module demonstrating Partition Key Sizing, Hot-Key Skew Mitigation & Log Compaction (Balance throughput across brokers while preserving strict per-customer event order...
Live Lab Sprint: Partition Key Sizing, Hot-Key Skew Mitigation & Log Compaction
// Partition Key Sizing, Hot-Key Skew Mitigation & Log Compaction
// Purpose: Balance throughput across brokers while preserving strict per-customer event order.
public record VerificationResult(boolean ok, String detail) {
public static VerificationResult verify(String input) {
if (input == null || input.isBlank()) throw new IllegalArgumentException("Missing input");
return new VerificationResult(true, input.trim());
}
}
💡 Self-Explanatory Overview: In simple, everyday terms, Batching (linger.ms, batch.size) & LZ4/Zstd Compression Tuning teaches you how Kafka applications multiply Kafka throughput 5x while slashing cross-AZ network bandwidth bills. Even if you have never seen this concept before, your trainer explains the real-life problem first, writes clean Apache Kafka 3.8 (KRaft Mode), Java 21 Kafka Clients API, Idempotent & Transactional Producers code live on screen, and shows what breaks in production if this step is skipped.
🎯 For What Purpose: To understand and apply Batching (linger.ms, batch.size) & LZ4/Zstd Compression Tuning in real Kafka systems — specifically: Multiply Kafka throughput 5x while slashing cross-AZ network bandwidth bills, so your code stays reliable, fast, and easy to maintain in production.
What Is Batching (linger.ms, batch.size) & LZ4/Zstd Compression Tuning & Why Industry Teams Use ItIn Kafka Training, Batching (linger.ms, batch.size) & LZ4/Zstd Compression Tuning exists for one clear real-world purpose: Multiply Kafka throughput 5x while slashing cross-AZ network bandwidth bills. Even if you come from a non-technical background, we start with the everyday real-life problem first before w...
Hands-On Implementation: Batching (linger.ms, batch.size) & LZ4/Zstd Compression Tuning
Build and verify a clean working module demonstrating Batching (linger.ms, batch.size) & LZ4/Zstd Compression Tuning (Multiply Kafka throughput 5x while slashing cross-AZ network bandwidth bills.). Ha...
Live Lab Sprint: Batching (linger.ms, batch.size) & LZ4/Zstd Compression Tuning
// Batching (linger.ms, batch.size) & LZ4/Zstd Compression Tuning
// Purpose: Multiply Kafka throughput 5x while slashing cross-AZ network bandwidth bills.
public record VerificationResult(boolean ok, String detail) {
public static VerificationResult verify(String input) {
if (input == null || input.isBlank()) throw new IllegalArgumentException("Missing input");
return new VerificationResult(true, input.trim());
}
}
Design, implement, test, and document 'Zero-Data-Loss Financial Event Backbone on Apache Kafka' applying every production concept from Module 11 (KRaft Internals, Idempotent/Transactional Producers & Partition Strategy) of Kafka Training.
Module Learning & Hands-On Objectives
💡 Self-Explanatory Overview: In simple, everyday terms, CooperativeStickyAssignor vs Stop-the-World Eager Rebalances teaches you how Kafka applications scale consumer pods up and down without freezing event processing across all partitions. Even if you have never seen this concept before, your trainer explains the real-life problem first, writes clean Apache Kafka 3.8 (KRaft Mode), Java 21 Kafka Clients API, Idempotent & Transactional Producers code live on screen, and shows what breaks in production if this step is skipped.
🎯 For What Purpose: To understand and apply CooperativeStickyAssignor vs Stop-the-World Eager Rebalances in real Kafka systems — specifically: Scale consumer pods up and down without freezing event processing across all partitions, so your code stays reliable, fast, and easy to maintain in production.
What Is CooperativeStickyAssignor vs Stop-the-World Eager Rebalances & Why Industry Teams Use ItIn Kafka Training, CooperativeStickyAssignor vs Stop-the-World Eager Rebalances exists for one clear real-world purpose: Scale consumer pods up and down without freezing event processing across all partitions. Even if you come from a non-technical background, we start with the everyday real-life problem first before wr...
Hands-On Implementation: CooperativeStickyAssignor vs Stop-the-World Eager Rebalances
Build and verify a clean working module demonstrating CooperativeStickyAssignor vs Stop-the-World Eager Rebalances (Scale consumer pods up and down without freezing event processing across all partiti...
Live Lab Sprint: CooperativeStickyAssignor vs Stop-the-World Eager Rebalances
// CooperativeStickyAssignor vs Stop-the-World Eager Rebalances
// Purpose: Scale consumer pods up and down without freezing event processing across all partitions.
public record VerificationResult(boolean ok, String detail) {
public static VerificationResult verify(String input) {
if (input == null || input.isBlank()) throw new IllegalArgumentException("Missing input");
return new VerificationResult(true, input.trim());
}
}
💡 Self-Explanatory Overview: In simple, everyday terms, Manual Offset Commits, At-Least-Once Idempotency & Poison-Pill Isolation teaches you how Kafka applications ensure offsets commit only after durable DB writes and route bad payloads to DLQs. Even if you have never seen this concept before, your trainer explains the real-life problem first, writes clean Apache Kafka 3.8 (KRaft Mode), Java 21 Kafka Clients API, Idempotent & Transactional Producers code live on screen, and shows what breaks in production if this step is skipped.
🎯 For What Purpose: To understand and apply Manual Offset Commits, At-Least-Once Idempotency & Poison-Pill Isolation in real Kafka systems — specifically: Ensure offsets commit only after durable DB writes and route bad payloads to DLQs, so your code stays reliable, fast, and easy to maintain in production.
What Is Manual Offset Commits, At-Least-Once Idempotency & Poison-Pill Isolation & Why Industry Teams Use ItIn Kafka Training, Manual Offset Commits, At-Least-Once Idempotency & Poison-Pill Isolation exists for one clear real-world purpose: Ensure offsets commit only after durable DB writes and route bad payloads to DLQs. Even if you come from a non-technical background, we start with the everyday real-li...
Hands-On Implementation: Manual Offset Commits, At-Least-Once Idempotency & Poison-Pill Isolation
Build and verify a clean working module demonstrating Manual Offset Commits, At-Least-Once Idempotency & Poison-Pill Isolation (Ensure offsets commit only after durable DB writes and route bad payload...
Live Lab Sprint: Manual Offset Commits, At-Least-Once Idempotency & Poison-Pill Isolation
// Manual Offset Commits, At-Least-Once Idempotency & Poison-Pill Isolation
// Purpose: Ensure offsets commit only after durable DB writes and route bad payloads to DLQs.
public record VerificationResult(boolean ok, String detail) {
public static VerificationResult verify(String input) {
if (input == null || input.isBlank()) throw new IllegalArgumentException("Missing input");
return new VerificationResult(true, input.trim());
}
}
💡 Self-Explanatory Overview: In simple, everyday terms, Non-Blocking Retry Topics (retry-5s -> retry-1m -> DLT) teaches you how Kafka applications retry transient downstream API timeouts without blocking healthy partition traffic. Even if you have never seen this concept before, your trainer explains the real-life problem first, writes clean Apache Kafka 3.8 (KRaft Mode), Java 21 Kafka Clients API, Idempotent & Transactional Producers code live on screen, and shows what breaks in production if this step is skipped.
🎯 For What Purpose: To understand and apply Non-Blocking Retry Topics (retry-5s -> retry-1m -> DLT) in real Kafka systems — specifically: Retry transient downstream API timeouts without blocking healthy partition traffic, so your code stays reliable, fast, and easy to maintain in production.
What Is Non-Blocking Retry Topics (retry-5s -> retry-1m -> DLT) & Why Industry Teams Use ItIn Kafka Training, Non-Blocking Retry Topics (retry-5s -> retry-1m -> DLT) exists for one clear real-world purpose: Retry transient downstream API timeouts without blocking healthy partition traffic. Even if you come from a non-technical background, we start with the everyday real-life problem first before writi...
Hands-On Implementation: Non-Blocking Retry Topics (retry-5s -> retry-1m -> DLT)
Build and verify a clean working module demonstrating Non-Blocking Retry Topics (retry-5s -> retry-1m -> DLT) (Retry transient downstream API timeouts without blocking healthy partition traffic.). Han...
Live Lab Sprint: Non-Blocking Retry Topics (retry-5s -> retry-1m -> DLT)
// Non-Blocking Retry Topics (retry-5s -> retry-1m -> DLT)
// Purpose: Retry transient downstream API timeouts without blocking healthy partition traffic.
public record VerificationResult(boolean ok, String detail) {
public static VerificationResult verify(String input) {
if (input == null || input.isBlank()) throw new IllegalArgumentException("Missing input");
return new VerificationResult(true, input.trim());
}
}
💡 Self-Explanatory Overview: In simple, everyday terms, Confluent/Apicurio Schema Registry (Avro/Protobuf) Compatibility Modes teaches you how Kafka applications enforce BACKWARD/FULL schema rules in CI so producer deploys never crash consumers. Even if you have never seen this concept before, your trainer explains the real-life problem first, writes clean Apache Kafka 3.8 (KRaft Mode), Java 21 Kafka Clients API, Idempotent & Transactional Producers code live on screen, and shows what breaks in production if this step is skipped.
🎯 For What Purpose: To understand and apply Confluent/Apicurio Schema Registry (Avro/Protobuf) Compatibility Modes in real Kafka systems — specifically: Enforce BACKWARD/FULL schema rules in CI so producer deploys never crash consumers, so your code stays reliable, fast, and easy to maintain in production.
What Is Confluent/Apicurio Schema Registry (Avro/Protobuf) Compatibility Modes & Why Industry Teams Use ItIn Kafka Training, Confluent/Apicurio Schema Registry (Avro/Protobuf) Compatibility Modes exists for one clear real-world purpose: Enforce BACKWARD/FULL schema rules in CI so producer deploys never crash consumers. Even if you come from a non-technical background, we start with the everyday real-life problem...
Hands-On Implementation: Confluent/Apicurio Schema Registry (Avro/Protobuf) Compatibility Modes
Build and verify a clean working module demonstrating Confluent/Apicurio Schema Registry (Avro/Protobuf) Compatibility Modes (Enforce BACKWARD/FULL schema rules in CI so producer deploys never crash c...
Live Lab Sprint: Confluent/Apicurio Schema Registry (Avro/Protobuf) Compatibility Modes
// Confluent/Apicurio Schema Registry (Avro/Protobuf) Compatibility Modes
// Purpose: Enforce BACKWARD/FULL schema rules in CI so producer deploys never crash consumers.
public record VerificationResult(boolean ok, String detail) {
public static VerificationResult verify(String input) {
if (input == null || input.isBlank()) throw new IllegalArgumentException("Missing input");
return new VerificationResult(true, input.trim());
}
}
Design, implement, test, and document 'Resilient Multi-Stage Retry & Schema-Governed Consumer Fleet' applying every production concept from Module 12 (Consumer Groups, Cooperative Rebalancing, DLQ Retries & Schema Registry) of Kafka Training.
Module Learning & Hands-On Objectives
💡 Self-Explanatory Overview: In simple, everyday terms, Kafka Connect Distributed Workers, Source/Sink Connectors & SMTs teaches you how Kafka applications stream data between databases, S3, and Elasticsearch with config instead of custom glue code. Even if you have never seen this concept before, your trainer explains the real-life problem first, writes clean Apache Kafka 3.8 (KRaft Mode), Java 21 Kafka Clients API, Idempotent & Transactional Producers code live on screen, and shows what breaks in production if this step is skipped.
🎯 For What Purpose: To understand and apply Kafka Connect Distributed Workers, Source/Sink Connectors & SMTs in real Kafka systems — specifically: Stream data between databases, S3, and Elasticsearch with config instead of custom glue code, so your code stays reliable, fast, and easy to maintain in production.
What Is Kafka Connect Distributed Workers, Source/Sink Connectors & SMTs & Why Industry Teams Use ItIn Kafka Training, Kafka Connect Distributed Workers, Source/Sink Connectors & SMTs exists for one clear real-world purpose: Stream data between databases, S3, and Elasticsearch with config instead of custom glue code. Even if you come from a non-technical background, we start with the everyday real-life pr...
Hands-On Implementation: Kafka Connect Distributed Workers, Source/Sink Connectors & SMTs
Build and verify a clean working module demonstrating Kafka Connect Distributed Workers, Source/Sink Connectors & SMTs (Stream data between databases, S3, and Elasticsearch with config instead of cust...
Live Lab Sprint: Kafka Connect Distributed Workers, Source/Sink Connectors & SMTs
// Kafka Connect Distributed Workers, Source/Sink Connectors & SMTs
// Purpose: Stream data between databases, S3, and Elasticsearch with config instead of custom glue code.
public record VerificationResult(boolean ok, String detail) {
public static VerificationResult verify(String input) {
if (input == null || input.isBlank()) throw new IllegalArgumentException("Missing input");
return new VerificationResult(true, input.trim());
}
}
💡 Self-Explanatory Overview: In simple, everyday terms, Log-Based Debezium CDC (WAL/Binlog) vs Polling Anti-Patterns teaches you how Kafka applications capture every row insert/update/delete in milliseconds with near-zero primary DB load. Even if you have never seen this concept before, your trainer explains the real-life problem first, writes clean Apache Kafka 3.8 (KRaft Mode), Java 21 Kafka Clients API, Idempotent & Transactional Producers code live on screen, and shows what breaks in production if this step is skipped.
🎯 For What Purpose: To understand and apply Log-Based Debezium CDC (WAL/Binlog) vs Polling Anti-Patterns in real Kafka systems — specifically: Capture every row insert/update/delete in milliseconds with near-zero primary DB load, so your code stays reliable, fast, and easy to maintain in production.
What Is Log-Based Debezium CDC (WAL/Binlog) vs Polling Anti-Patterns & Why Industry Teams Use ItIn Kafka Training, Log-Based Debezium CDC (WAL/Binlog) vs Polling Anti-Patterns exists for one clear real-world purpose: Capture every row insert/update/delete in milliseconds with near-zero primary DB load. Even if you come from a non-technical background, we start with the everyday real-life problem first before writ...
Hands-On Implementation: Log-Based Debezium CDC (WAL/Binlog) vs Polling Anti-Patterns
Build and verify a clean working module demonstrating Log-Based Debezium CDC (WAL/Binlog) vs Polling Anti-Patterns (Capture every row insert/update/delete in milliseconds with near-zero primary DB loa...
Live Lab Sprint: Log-Based Debezium CDC (WAL/Binlog) vs Polling Anti-Patterns
// Log-Based Debezium CDC (WAL/Binlog) vs Polling Anti-Patterns
// Purpose: Capture every row insert/update/delete in milliseconds with near-zero primary DB load.
public record VerificationResult(boolean ok, String detail) {
public static VerificationResult verify(String input) {
if (input == null || input.isBlank()) throw new IllegalArgumentException("Missing input");
return new VerificationResult(true, input.trim());
}
}
💡 Self-Explanatory Overview: In simple, everyday terms, Transactional Outbox Event Router Pattern teaches you how Kafka applications publish clean domain events atomically alongside microservice SQL commits. Even if you have never seen this concept before, your trainer explains the real-life problem first, writes clean Apache Kafka 3.8 (KRaft Mode), Java 21 Kafka Clients API, Idempotent & Transactional Producers code live on screen, and shows what breaks in production if this step is skipped.
🎯 For What Purpose: To understand and apply Transactional Outbox Event Router Pattern in real Kafka systems — specifically: Publish clean domain events atomically alongside microservice SQL commits, so your code stays reliable, fast, and easy to maintain in production.
What Is Transactional Outbox Event Router Pattern & Why Industry Teams Use ItIn Kafka Training, Transactional Outbox Event Router Pattern exists for one clear real-world purpose: Publish clean domain events atomically alongside microservice SQL commits. Even if you come from a non-technical background, we start with the everyday real-life problem first before writing production syntax.Sub-Topics & Exact Real-...
Hands-On Implementation: Transactional Outbox Event Router Pattern
Build and verify a clean working module demonstrating Transactional Outbox Event Router Pattern (Publish clean domain events atomically alongside microservice SQL commits.). Handle invalid inputs and...
Live Lab Sprint: Transactional Outbox Event Router Pattern
// Transactional Outbox Event Router Pattern
// Purpose: Publish clean domain events atomically alongside microservice SQL commits.
public record VerificationResult(boolean ok, String detail) {
public static VerificationResult verify(String input) {
if (input == null || input.isBlank()) throw new IllegalArgumentException("Missing input");
return new VerificationResult(true, input.trim());
}
}
💡 Self-Explanatory Overview: In simple, everyday terms, Connector Secret Providers, Dead-Letter Sink Routing & Offset Resets teaches you how Kafka applications operate Connect clusters securely and recover broken connectors cleanly. Even if you have never seen this concept before, your trainer explains the real-life problem first, writes clean Apache Kafka 3.8 (KRaft Mode), Java 21 Kafka Clients API, Idempotent & Transactional Producers code live on screen, and shows what breaks in production if this step is skipped.
🎯 For What Purpose: To understand and apply Connector Secret Providers, Dead-Letter Sink Routing & Offset Resets in real Kafka systems — specifically: Operate Connect clusters securely and recover broken connectors cleanly, so your code stays reliable, fast, and easy to maintain in production.
What Is Connector Secret Providers, Dead-Letter Sink Routing & Offset Resets & Why Industry Teams Use ItIn Kafka Training, Connector Secret Providers, Dead-Letter Sink Routing & Offset Resets exists for one clear real-world purpose: Operate Connect clusters securely and recover broken connectors cleanly. Even if you come from a non-technical background, we start with the everyday real-life problem first b...
Hands-On Implementation: Connector Secret Providers, Dead-Letter Sink Routing & Offset Resets
Build and verify a clean working module demonstrating Connector Secret Providers, Dead-Letter Sink Routing & Offset Resets (Operate Connect clusters securely and recover broken connectors cleanly.). H...
Live Lab Sprint: Connector Secret Providers, Dead-Letter Sink Routing & Offset Resets
// Connector Secret Providers, Dead-Letter Sink Routing & Offset Resets
// Purpose: Operate Connect clusters securely and recover broken connectors cleanly.
public record VerificationResult(boolean ok, String detail) {
public static VerificationResult verify(String input) {
if (input == null || input.isBlank()) throw new IllegalArgumentException("Missing input");
return new VerificationResult(true, input.trim());
}
}
Design, implement, test, and document 'Real-Time PostgreSQL-to-Kafka CDC & Search Sync Pipeline' applying every production concept from Module 13 (Kafka Connect, Debezium Change Data Capture (CDC) & Outbox Streaming) of Kafka Training.
Module Learning & Hands-On Objectives
💡 Self-Explanatory Overview: In simple, everyday terms, KStream vs KTable Duality, GlobalKTable & Stream-Table Joins teaches you how Kafka applications enrich high-velocity click/payment events with customer tier metadata in real time. Even if you have never seen this concept before, your trainer explains the real-life problem first, writes clean Apache Kafka 3.8 (KRaft Mode), Java 21 Kafka Clients API, Idempotent & Transactional Producers code live on screen, and shows what breaks in production if this step is skipped.
🎯 For What Purpose: To understand and apply KStream vs KTable Duality, GlobalKTable & Stream-Table Joins in real Kafka systems — specifically: Enrich high-velocity click/payment events with customer tier metadata in real time, so your code stays reliable, fast, and easy to maintain in production.
What Is KStream vs KTable Duality, GlobalKTable & Stream-Table Joins & Why Industry Teams Use ItIn Kafka Training, KStream vs KTable Duality, GlobalKTable & Stream-Table Joins exists for one clear real-world purpose: Enrich high-velocity click/payment events with customer tier metadata in real time. Even if you come from a non-technical background, we start with the everyday real-life problem first before...
Hands-On Implementation: KStream vs KTable Duality, GlobalKTable & Stream-Table Joins
Build and verify a clean working module demonstrating KStream vs KTable Duality, GlobalKTable & Stream-Table Joins (Enrich high-velocity click/payment events with customer tier metadata in real time.)...
Live Lab Sprint: KStream vs KTable Duality, GlobalKTable & Stream-Table Joins
// KStream vs KTable Duality, GlobalKTable & Stream-Table Joins
// Purpose: Enrich high-velocity click/payment events with customer tier metadata in real time.
public record VerificationResult(boolean ok, String detail) {
public static VerificationResult verify(String input) {
if (input == null || input.isBlank()) throw new IllegalArgumentException("Missing input");
return new VerificationResult(true, input.trim());
}
}
💡 Self-Explanatory Overview: In simple, everyday terms, Tumbling, Hopping & Session Windows + Watermarks for Late Events teaches you how Kafka applications detect 5-failed-card-attempts-in-2-minutes fraud bursts accurately even on delayed mobile events. Even if you have never seen this concept before, your trainer explains the real-life problem first, writes clean Apache Kafka 3.8 (KRaft Mode), Java 21 Kafka Clients API, Idempotent & Transactional Producers code live on screen, and shows what breaks in production if this step is skipped.
🎯 For What Purpose: To understand and apply Tumbling, Hopping & Session Windows + Watermarks for Late Events in real Kafka systems — specifically: Detect 5-failed-card-attempts-in-2-minutes fraud bursts accurately even on delayed mobile events, so your code stays reliable, fast, and easy to maintain in production.
What Is Tumbling, Hopping & Session Windows + Watermarks for Late Events & Why Industry Teams Use ItIn Kafka Training, Tumbling, Hopping & Session Windows + Watermarks for Late Events exists for one clear real-world purpose: Detect 5-failed-card-attempts-in-2-minutes fraud bursts accurately even on delayed mobile events. Even if you come from a non-technical background, we start with the everyday real-lif...
Hands-On Implementation: Tumbling, Hopping & Session Windows + Watermarks for Late Events
Build and verify a clean working module demonstrating Tumbling, Hopping & Session Windows + Watermarks for Late Events (Detect 5-failed-card-attempts-in-2-minutes fraud bursts accurately even on delay...
Live Lab Sprint: Tumbling, Hopping & Session Windows + Watermarks for Late Events
// Tumbling, Hopping & Session Windows + Watermarks for Late Events
// Purpose: Detect 5-failed-card-attempts-in-2-minutes fraud bursts accurately even on delayed mobile events.
public record VerificationResult(boolean ok, String detail) {
public static VerificationResult verify(String input) {
if (input == null || input.isBlank()) throw new IllegalArgumentException("Missing input");
return new VerificationResult(true, input.trim());
}
}
💡 Self-Explanatory Overview: In simple, everyday terms, RocksDB State Stores, Changelog Topics & Standby Replicas teaches you how Kafka applications fail over stateful stream processors in seconds instead of replaying hours of state. Even if you have never seen this concept before, your trainer explains the real-life problem first, writes clean Apache Kafka 3.8 (KRaft Mode), Java 21 Kafka Clients API, Idempotent & Transactional Producers code live on screen, and shows what breaks in production if this step is skipped.
🎯 For What Purpose: To understand and apply RocksDB State Stores, Changelog Topics & Standby Replicas in real Kafka systems — specifically: Fail over stateful stream processors in seconds instead of replaying hours of state, so your code stays reliable, fast, and easy to maintain in production.
What Is RocksDB State Stores, Changelog Topics & Standby Replicas & Why Industry Teams Use ItIn Kafka Training, RocksDB State Stores, Changelog Topics & Standby Replicas exists for one clear real-world purpose: Fail over stateful stream processors in seconds instead of replaying hours of state. Even if you come from a non-technical background, we start with the everyday real-life problem first before writ...
Hands-On Implementation: RocksDB State Stores, Changelog Topics & Standby Replicas
Build and verify a clean working module demonstrating RocksDB State Stores, Changelog Topics & Standby Replicas (Fail over stateful stream processors in seconds instead of replaying hours of state.)....
Live Lab Sprint: RocksDB State Stores, Changelog Topics & Standby Replicas
// RocksDB State Stores, Changelog Topics & Standby Replicas
// Purpose: Fail over stateful stream processors in seconds instead of replaying hours of state.
public record VerificationResult(boolean ok, String detail) {
public static VerificationResult verify(String input) {
if (input == null || input.isBlank()) throw new IllegalArgumentException("Missing input");
return new VerificationResult(true, input.trim());
}
}
💡 Self-Explanatory Overview: In simple, everyday terms, Consumer Lag Alerting, Cruise Control Rebalancing, mTLS/SASL & MirrorMaker 2 teaches you how Kafka applications monitor consumer lag SLAs, enforce ACL security, and replicate cross-region DR clusters. Even if you have never seen this concept before, your trainer explains the real-life problem first, writes clean Apache Kafka 3.8 (KRaft Mode), Java 21 Kafka Clients API, Idempotent & Transactional Producers code live on screen, and shows what breaks in production if this step is skipped.
🎯 For What Purpose: To understand and apply Consumer Lag Alerting, Cruise Control Rebalancing, mTLS/SASL & MirrorMaker 2 in real Kafka systems — specifically: Monitor consumer lag SLAs, enforce ACL security, and replicate cross-region DR clusters, so your code stays reliable, fast, and easy to maintain in production.
What Is Consumer Lag Alerting, Cruise Control Rebalancing, mTLS/SASL & MirrorMaker 2 & Why Industry Teams Use ItIn Kafka Training, Consumer Lag Alerting, Cruise Control Rebalancing, mTLS/SASL & MirrorMaker 2 exists for one clear real-world purpose: Monitor consumer lag SLAs, enforce ACL security, and replicate cross-region DR clusters. Even if you come from a non-technical background, we start with the ev...
Hands-On Implementation: Consumer Lag Alerting, Cruise Control Rebalancing, mTLS/SASL & MirrorMaker 2
Build and verify a clean working module demonstrating Consumer Lag Alerting, Cruise Control Rebalancing, mTLS/SASL & MirrorMaker 2 (Monitor consumer lag SLAs, enforce ACL security, and replicate cross...
Live Lab Sprint: Consumer Lag Alerting, Cruise Control Rebalancing, mTLS/SASL & MirrorMaker 2
// Consumer Lag Alerting, Cruise Control Rebalancing, mTLS/SASL & MirrorMaker 2
// Purpose: Monitor consumer lag SLAs, enforce ACL security, and replicate cross-region DR clusters.
public record VerificationResult(boolean ok, String detail) {
public static VerificationResult verify(String input) {
if (input == null || input.isBlank()) throw new IllegalArgumentException("Missing input");
return new VerificationResult(true, input.trim());
}
}
Design, implement, test, and document 'Real-Time Fraud Velocity & Sliding-Window Aggregator' applying every production concept from Module 14 (Stateful Kafka Streams (RocksDB, Windows) & Production Cluster Ops) of Kafka Training.
Module Learning & Hands-On Objectives
💡 Self-Explanatory Overview: In simple, everyday terms, Schema Registry Evolution Rules (Backward, Forward & Full Compatibility) teaches you how Kafka applications evolve event payloads across teams without breaking downstream Kafka consumers in production. Even if you have never seen this concept before, your trainer explains the real-life problem first, writes clean Apache Kafka 3.8 (KRaft Mode), Java 21 Kafka Clients API, Idempotent & Transactional Producers code live on screen, and shows what breaks in production if this step is skipped.
🎯 For What Purpose: To understand and apply Schema Registry Evolution Rules (Backward, Forward & Full Compatibility) in real Kafka systems — specifically: Evolve event payloads across teams without breaking downstream Kafka consumers in production, so your code stays reliable, fast, and easy to maintain in production.
Self-Explanatory Guide: Schema Registry Evolution Rules (Backward, Forward & Full Compatibility) (Plain-English & Industry Purpose)In simple, everyday terms, Schema Registry Evolution Rules (Backward, Forward & Full Compatibility) teaches you how Kafka applications evolve event payloads across teams without breaking downstream Kafka consumers in production. Even if you have never seen this concept before,...
Practical Implementation: Schema Registry Evolution Rules (Backward, Forward & Full Compatibility)
Implement and verify Schema Registry Evolution Rules (Backward, Forward & Full Compatibility) (Evolve event payloads across teams without breaking downstream Kafka consumers in production) with explic...
Guided Live Lab Checklist: Schema Registry Evolution Rules (Backward, Forward & Full Compatibility)
// Schema Registry Evolution Rules (Backward, Forward & Full Compatibility)
// Purpose: Evolve event payloads across teams without breaking downstream Kafka consumers in production
import java.util.Map;
public final class ProductionTopicCheck {
public static Map<String, Object> verify(String tenantId) {
if (tenantId == null || tenantId.isBlank()) {
throw new IllegalArgumentException("tenantId is required");
}
return Map.of("topic", "Schema Registry Evolution Rules (Backward,...
💡 Self-Explanatory Overview: In simple, everyday terms, Non-Blocking Retry Topics, Dead-Letter Topics (DLT) & Idempotent Consumer Deduplication teaches you how Kafka applications isolate malformed or transiently failing records without stalling partition consumption. Even if you have never seen this concept before, your trainer explains the real-life problem first, writes clean Apache Kafka 3.8 (KRaft Mode), Java 21 Kafka Clients API, Idempotent & Transactional Producers code live on screen, and shows what breaks in production if this step is skipped.
🎯 For What Purpose: To understand and apply Non-Blocking Retry Topics, Dead-Letter Topics (DLT) & Idempotent Consumer Deduplication in real Kafka systems — specifically: Isolate malformed or transiently failing records without stalling partition consumption, so your code stays reliable, fast, and easy to maintain in production.
Self-Explanatory Guide: Non-Blocking Retry Topics, Dead-Letter Topics (DLT) & Idempotent Consumer Deduplication (Plain-English & Industry Purpose)In simple, everyday terms, Non-Blocking Retry Topics, Dead-Letter Topics (DLT) & Idempotent Consumer Deduplication teaches you how Kafka applications isolate malformed or transiently failing records without stalling partition consumption. Even if you have never...
Practical Implementation: Non-Blocking Retry Topics, Dead-Letter Topics (DLT) & Idempotent Consumer Deduplication
Implement and verify Non-Blocking Retry Topics, Dead-Letter Topics (DLT) & Idempotent Consumer Deduplication (Isolate malformed or transiently failing records without stalling partition consumption) w...
Guided Live Lab Checklist: Non-Blocking Retry Topics, Dead-Letter Topics (DLT) & Idempotent Consumer Deduplication
// Non-Blocking Retry Topics, Dead-Letter Topics (DLT) & Idempotent Consumer Deduplication
// Purpose: Isolate malformed or transiently failing records without stalling partition consumption
import java.util.Map;
public final class ProductionTopicCheck {
public static Map<String, Object> verify(String tenantId) {
if (tenantId == null || tenantId.isBlank()) {
throw new IllegalArgumentException("tenantId is required");
}
return Map.of("topic", "Non-Blocking Retry Topics, Dead-...
💡 Self-Explanatory Overview: In simple, everyday terms, Change Data Capture (CDC) with Debezium & Transactional Outbox Architecture teaches you how Kafka applications stream committed database changes into Kafka reliably with zero dual-write race conditions. Even if you have never seen this concept before, your trainer explains the real-life problem first, writes clean Apache Kafka 3.8 (KRaft Mode), Java 21 Kafka Clients API, Idempotent & Transactional Producers code live on screen, and shows what breaks in production if this step is skipped.
🎯 For What Purpose: To understand and apply Change Data Capture (CDC) with Debezium & Transactional Outbox Architecture in real Kafka systems — specifically: Stream committed database changes into Kafka reliably with zero dual-write race conditions, so your code stays reliable, fast, and easy to maintain in production.
Self-Explanatory Guide: Change Data Capture (CDC) with Debezium & Transactional Outbox Architecture (Plain-English & Industry Purpose)In simple, everyday terms, Change Data Capture (CDC) with Debezium & Transactional Outbox Architecture teaches you how Kafka applications stream committed database changes into Kafka reliably with zero dual-write race conditions. Even if you have never seen this concept bef...
Practical Implementation: Change Data Capture (CDC) with Debezium & Transactional Outbox Architecture
Implement and verify Change Data Capture (CDC) with Debezium & Transactional Outbox Architecture (Stream committed database changes into Kafka reliably with zero dual-write race conditions) with expli...
Guided Live Lab Checklist: Change Data Capture (CDC) with Debezium & Transactional Outbox Architecture
// Change Data Capture (CDC) with Debezium & Transactional Outbox Architecture
// Purpose: Stream committed database changes into Kafka reliably with zero dual-write race conditions
import java.util.Map;
public final class ProductionTopicCheck {
public static Map<String, Object> verify(String tenantId) {
if (tenantId == null || tenantId.isBlank()) {
throw new IllegalArgumentException("tenantId is required");
}
return Map.of("topic", "Change Data Capture (CDC) with Debezium &...
Architect, implement, test, and document 'Avro/Protobuf Schema-Governed Order Pipeline with Retry Tiers & DLT Replay' applying every bullet-wise engineering concept from Module 15 (Schema Registry Compatibility, Transactional Outbox & Dead-Letter Topologies) of Kafka Training.
Module Learning & Hands-On Objectives
💡 Self-Explanatory Overview: In simple, everyday terms, CooperativeStickyAssignor, Static Group Membership & Preventing Rebalance Storms teaches you how Kafka applications keep high-throughput consumer groups stable during rolling pod deployments and GC pauses. Even if you have never seen this concept before, your trainer explains the real-life problem first, writes clean Apache Kafka 3.8 (KRaft Mode), Java 21 Kafka Clients API, Idempotent & Transactional Producers code live on screen, and shows what breaks in production if this step is skipped.
🎯 For What Purpose: To understand and apply CooperativeStickyAssignor, Static Group Membership & Preventing Rebalance Storms in real Kafka systems — specifically: Keep high-throughput consumer groups stable during rolling pod deployments and GC pauses, so your code stays reliable, fast, and easy to maintain in production.
Self-Explanatory Guide: CooperativeStickyAssignor, Static Group Membership & Preventing Rebalance Storms (Plain-English & Industry Purpose)In simple, everyday terms, CooperativeStickyAssignor, Static Group Membership & Preventing Rebalance Storms teaches you how Kafka applications keep high-throughput consumer groups stable during rolling pod deployments and GC pauses. Even if you have never seen this con...
Practical Implementation: CooperativeStickyAssignor, Static Group Membership & Preventing Rebalance Storms
Implement and verify CooperativeStickyAssignor, Static Group Membership & Preventing Rebalance Storms (Keep high-throughput consumer groups stable during rolling pod deployments and GC pauses) with ex...
Guided Live Lab Checklist: CooperativeStickyAssignor, Static Group Membership & Preventing Rebalance Storms
// CooperativeStickyAssignor, Static Group Membership & Preventing Rebalance Storms
// Purpose: Keep high-throughput consumer groups stable during rolling pod deployments and GC pauses
import java.util.Map;
public final class ProductionTopicCheck {
public static Map<String, Object> verify(String tenantId) {
if (tenantId == null || tenantId.isBlank()) {
throw new IllegalArgumentException("tenantId is required");
}
return Map.of("topic", "CooperativeStickyAssignor, Static Grou...
💡 Self-Explanatory Overview: In simple, everyday terms, Monitoring Under-Replicated Partitions, ISR Shrinks, Disk Retention & Compaction teaches you how Kafka applications detect broker bottlenecks early and tune min.insync.replicas + acks=all for zero data loss. Even if you have never seen this concept before, your trainer explains the real-life problem first, writes clean Apache Kafka 3.8 (KRaft Mode), Java 21 Kafka Clients API, Idempotent & Transactional Producers code live on screen, and shows what breaks in production if this step is skipped.
🎯 For What Purpose: To understand and apply Monitoring Under-Replicated Partitions, ISR Shrinks, Disk Retention & Compaction in real Kafka systems — specifically: Detect broker bottlenecks early and tune min.insync.replicas + acks=all for zero data loss, so your code stays reliable, fast, and easy to maintain in production.
Self-Explanatory Guide: Monitoring Under-Replicated Partitions, ISR Shrinks, Disk Retention & Compaction (Plain-English & Industry Purpose)In simple, everyday terms, Monitoring Under-Replicated Partitions, ISR Shrinks, Disk Retention & Compaction teaches you how Kafka applications detect broker bottlenecks early and tune min.insync.replicas + acks=all for zero data loss. Even if you have never seen this c...
Practical Implementation: Monitoring Under-Replicated Partitions, ISR Shrinks, Disk Retention & Compaction
Implement and verify Monitoring Under-Replicated Partitions, ISR Shrinks, Disk Retention & Compaction (Detect broker bottlenecks early and tune min.insync.replicas + acks=all for zero data loss) with...
Guided Live Lab Checklist: Monitoring Under-Replicated Partitions, ISR Shrinks, Disk Retention & Compaction
// Monitoring Under-Replicated Partitions, ISR Shrinks, Disk Retention & Compaction
// Purpose: Detect broker bottlenecks early and tune min.insync.replicas + acks=all for zero data loss
import java.util.Map;
public final class ProductionTopicCheck {
public static Map<String, Object> verify(String tenantId) {
if (tenantId == null || tenantId.isBlank()) {
throw new IllegalArgumentException("tenantId is required");
}
return Map.of("topic", "Monitoring Under-Replicated Partitio...
💡 Self-Explanatory Overview: In simple, everyday terms, Multi-Region MirrorMaker 2 & Event-Driven Architecture Interviews teaches you how Kafka applications design ordering guarantees, partition keys, and replayable event-sourced systems in interviews. Even if you have never seen this concept before, your trainer explains the real-life problem first, writes clean Apache Kafka 3.8 (KRaft Mode), Java 21 Kafka Clients API, Idempotent & Transactional Producers code live on screen, and shows what breaks in production if this step is skipped.
🎯 For What Purpose: To understand and apply Multi-Region MirrorMaker 2 & Event-Driven Architecture Interviews in real Kafka systems — specifically: Design ordering guarantees, partition keys, and replayable event-sourced systems in interviews, so your code stays reliable, fast, and easy to maintain in production.
Self-Explanatory Guide: Multi-Region MirrorMaker 2 & Event-Driven Architecture Interviews (Plain-English & Industry Purpose)In simple, everyday terms, Multi-Region MirrorMaker 2 & Event-Driven Architecture Interviews teaches you how Kafka applications design ordering guarantees, partition keys, and replayable event-sourced systems in interviews. Even if you have never seen this concept before, your traine...
Practical Implementation: Multi-Region MirrorMaker 2 & Event-Driven Architecture Interviews
Implement and verify Multi-Region MirrorMaker 2 & Event-Driven Architecture Interviews (Design ordering guarantees, partition keys, and replayable event-sourced systems in interviews) with explicit in...
Guided Live Lab Checklist: Multi-Region MirrorMaker 2 & Event-Driven Architecture Interviews
// Multi-Region MirrorMaker 2 & Event-Driven Architecture Interviews
// Purpose: Design ordering guarantees, partition keys, and replayable event-sourced systems in interviews
import java.util.Map;
public final class ProductionTopicCheck {
public static Map<String, Object> verify(String tenantId) {
if (tenantId == null || tenantId.isBlank()) {
throw new IllegalArgumentException("tenantId is required");
}
return Map.of("topic", "Multi-Region MirrorMaker 2 & Event-Driven Archi...
Architect, implement, test, and document 'Consumer-Lag Autoscaling Monitor, Rebalance Tuning & Disaster-Recovery Mirroring' applying every bullet-wise engineering concept from Module 16 (KRaft Cluster Operations, Consumer Lag SRE & Event-Driven System Design) of Kafka Training.
Apache Kafka & KRaft
Event StreamingPartitions, ISR & Consumer Groups
Broker InternalsSpring Kafka & Saga Outbox
Java MicroservicesPython / Node Kafka Producers
Core LanguageDebezium CDC & Schema Registry
Enterprise RDBMSIdempotent Dedup & DLQ
In-Memory CacheDocker & Strimzi K8s Kafka
ContainersConsumer Lag & JMX Metrics
Metrics & AlertsLeetCode Problem Solving
Trainer Coding PrepHackerRank Coding Prep
Trainer Coding PrepWhen millions of events happen every second — UPI payments, Uber GPS pings, Netflix clicks, stock trades — Apache Kafka acts as an indestructible high-speed event highway connecting microservices without losing a single message.
Explained from a simple “post-office & ledger” analogy upward so backend developers, data engineers, and cloud learners grasp distributed streaming clearly.
Key Engineering Capabilities You Will Build:
Purpose: Scale event throughput horizontally to millions of messages/sec without ZooKeeper overhead.
Purpose: Guarantee zero lost or duplicated financial events even when network packets retry.
Purpose: Parallelize event processing safely across worker fleets with at-least-once / exactly-once guarantees.
Purpose: Evolve event formats without breaking downstream teams and isolate poison messages cleanly.
Taught live by active Working IT Professionals between 7:00 AM and 8:00 PM IST (choose any slot based on trainer availability).
Weekdays (Mon – Fri): 1 Hour / Day • 7:00 AM to 8:00 PM IST (choose any slot based on trainer availability)
Weekends (Sat – Sun): 2 Hours / Day • 7:00 AM to 8:00 PM IST (choose any slot based on trainer availability)
Kafka Training — Weekday Live Online Cohort (₹5,999 + 18% GST)
Mon - Fri (Weekday Live • 1 Hr/Day) • 07:00 AM - 08:00 PM IST (1 Hr/Day • Any Slot per Trainer Availability)
Starts: 10 Oct 2026
Kafka Training — Weekend Live Online Cohort (₹5,999 + 18% GST)
Sat - Sun (Weekend Live • 2 Hrs/Day) • 07:00 AM - 08:00 PM IST (2 Hrs/Day • Any Slot per Trainer Availability)
Starts: 05 Nov 2026
Enrolled students receive live trainer mentorship to break down algorithmic/query patterns, edge cases, and optimal complexity so you can confidently crack LeetCode and HackerRank problems in Java 21 LTS (Kafka Clients & Streams).
🚀 Live Client Production Project + Internship Letter
After completing all 16 progressive hands-on module projects during live classes, students join our mentor-led Client Production Sprint to build, test, and deploy "StreamPulse Event-Driven Order Pipeline, Dead-Letter Recovery & Outbox Relay" to live cloud production — earning an Official Verified Internship Letter detailing their exact technical contributions.
Domain: High-Volume Retail & FinTech Event Streaming Client • Infra: Apache Kafka KRaft Cluster + Schema Registry (Avro/JSON) + Kafka Connect + Consumer Groups
Certified on Your Official Internship Confirmation Letter:
See the exact job positions and realistic salary packages unlocked by Kafka Training, plus which specialized MockAttempt Academy courses to pair next to qualify for higher-paying multi-stack engineering roles.
Partitions, idempotent producers, consumer groups, DLQs & live streaming project.
Exactly-once semantics, Kafka Connect CDC, schema evolution & lag tuning.
Kafka expertise commands top-decile backend salaries when paired with Spring Boot or Python/Cloud!
Why Learn Next (For What Purpose): Spring Boot + Apache Kafka is the gold-standard distributed backend stack in global banking and product tech.
Why Learn Next (For What Purpose): Run fault-tolerant Kafka and microservice workloads across AWS and Kubernetes clusters.
Why Learn Next (For What Purpose): Stream PostgreSQL CDC changes through Kafka into sub-millisecond Redis read models.
MockAttempt Academy keeps production-grade Apache Kafka, KRaft, Event Streaming & Kafka Streams training ultra-affordable at ₹5,999 + 18% GST so every learner gets 10,440 MCQs, 16 Capstone Projects, Live Client Production deployment, and spoken MockAttempt AI interview coaching.
Regular Skill Courses offer both Weekday Live Batches (Monday–Friday, 1 Hour/Day between 7:00 AM and 8:00 PM IST) and Weekend Live Batches (Saturday–Sunday, 2 Hours/Day between 7:00 AM and 8:00 PM IST) taught 100% by active Working IT Professionals — students can choose any convenient slot based on trainer availability.
Instead of passive pre-recorded videos, you code live with senior architects, monitor 100% of syllabus progress transparently, build 16 progressive Module Projects during training, and deploy a real Live Client Project to production at the end of the course — earning both a Barcode Graduation Certificate and an Official Project Internship Confirmation Letter.
Across all 42 syllabus topics in 16 modules, this course includes 244 Timed Topic Mock Tests (10,440 curated MCQs with detailed explanations) and 244 Spoken Voice + MockAttempt AI Technical Interview rounds — ensuring 100% of topics are assessed.
The AI Interviewer speaks each question aloud via Text-to-Speech, listens via microphone Speech-to-Text, normalizes spoken technical syntax, and sends your transcript to the MockAttempt AI verification agent for scoring and follow-up probing.
All MockAttempt Tech Academy fees are 100% fixed and non-negotiable (₹5,999 + 18% GST). We never inflate fake MRPs only to bargain discounts because we refuse to compromise on Senior Industry Expert trainers, small interactive live batches, real cloud/repository labs, daily assessments, or placement mentorship.
Yes! Because this curriculum includes Java 21 LTS (Kafka Clients & Streams), your trainer provides guided problem-solving support to break down patterns, edge cases, and optimal complexity so you can confidently crack LeetCode and HackerRank problems.
Raise Course, Placement or College Project Query