Learn Apache Kafka (distributed event streaming platform) from the basics to production-grade: environment setup, history, core architecture, topics & partitions, producers & consumers, serialization & schema management, ordering & delivery semantics, transactions, log compaction, tiered storage, Kafka Connect, Kafka Streams, ksqlDB, networking & multi-datacenter, security (SASL, ACLs, TLS), quotas, scaling, performance tuning, monitoring & alerting, high availability, disaster recovery, microservices, CDC with Debezium, Kubernetes with Strimzi & Docker, AWS MSK & Confluent Cloud, CI/CD, testing, and Kafka best practices & the future, in a total of 36 episodes.
Before touching Apache Kafka, you need to master the concepts of distributed systems, pub/sub messaging, and data serialization. In this episode you will also set up the JDK, Kafka binary, and Docker, then verify that your entire environment is ready to use.

This episode covers the journey of event streaming from traditional messaging to the birth of Apache Kafka at LinkedIn in 2011. You will also learn about the problems Kafka solves, its comparison with RabbitMQ, Kinesis, and Pulsar, and the main use cases of event streaming.

This episode dissects Kafka's core concepts: events, topics, partitions, brokers, clusters, offsets, and consumer groups. You will also understand the distributed commit log architecture, the role of the controller broker, replication mechanisms, and log segment-based storage.

This episode walks you through installing Kafka using the binary, Docker, and cloud managed services. You will understand the difference between ZooKeeper and KRaft mode, build single-node and multi-broker clusters, and master the CLI tools for managing clusters.

This episode dissects topics and partitions in depth: creating topics, naming rules, configuration parameters, key-based partitioning strategies, round-robin, custom partitioners, and retention, segment, and cleanup policies such as delete and compact.

This episode covers Kafka producers: the structure of a ProducerRecord, basic configuration, the fire-and-forget, synchronous, and asynchronous delivery patterns with callbacks, batching, tuning acks, retries, compression, and idempotent producers to prevent duplicates.

This episode covers Kafka consumers: subscription, polling, lifecycle, consumer groups and rebalancing, partition assignment strategies, offset management with auto-commit and manual commit, and tuning consumer parameters for the right latency and throughput.

This episode covers Kafka data serialization: String, JSON, Avro, and Protobuf, plus the differences in performance and ease of use. You will also learn about the Confluent Schema Registry, schema evolution, compatibility types, and schema design best practices.

This episode covers Kafka's ordering guarantees: ordering per partition and per key, global ordering limits, and the at-most-once, at-least-once, and exactly-once delivery semantics. You will also understand the role of idempotent producers and transactional messaging as the foundation of EOS.

This episode covers Kafka transactions: the initTransactions, beginTransaction, send, commitTransaction, and abortTransaction lifecycle. You will also learn the read-process-write pattern, configuring transactional.id, transaction.timeout.ms, isolation.level, and the performance trade-offs.
