[MAJOR UPDATE : This course was completely redone on March 2020]Description:Learn the fundamentals and advanced concepts of Apache Kafka in this course. This course will give you a good understanding of all the concepts through Hands-On This course will walk you through the Kafka concepts step by stepAll the Kafka concepts will be taught through Hands-OnThis course will  increase your technical expertise in KafkaThis course will give you good exposure to build Kafka Client applications using JavaThis course will be an eyeopener for people who think Kafka is a complex system and you will find yourself in a better place after you complete this courseThis course will transfer you from no Kafka experience to an experienced Kafka user.Course Overview:Getting Started with KafkaIn this section, I will give you all a quick introduction to Apache Kafka, terminologies and different client APIs that are part of KafkaDownload and Install KafkaIn this section, we will download the Kafka distribution from the Kafka Website.Understanding Kafka Components and its Internals – (Theory + Hands-On)In this section, we will explore the Kafka internals from a theoretical perspective followed by hands-on exploring the Kafka internals.Learn about the Topics and Partitions in KafkaSetup a Local Kafka Cluster with Multiple BrokersProducer/Consumer messages in the Kafka ClusterLearn about Consumer Offsets and Consumer GroupsCommit Log and Retention PolicyLearn about Kafka Load Distribution and Fault Tolerance and RobustnessKafka Producer API – Hands-OnIn this section, we will learn about building the Kafka Producer to producer messages into Kafka using the producer APISetting up the base-project for ProducerUnderstand how the producer API worksProduce messages to the Kafka topic using the Synchronous/Asynchronous approachUnderstand how Kafka producer API works behind the scenesKafka Producer API – Guaranteed Message Delivery ConfigurationsIn this lecture, we will learn about the different configurations that guarantee message delivery into Kafka.Explore some of the producer API ConfigurationsConfiguring the acks and min.insync.replicas for guaranteed message deliveryOverride the retries and retry-back-off-ms valueKafka Consumer API – Hands OnIn this section, we will learn about building Kafka consumers to read messages from Kafka using the Consumer API.Setting up the base-project for ConsumersConsuming Messages using Consumer API – poll() loopBuild Kafka Consumer using the Consumer APIauto.offset.reset – earliest vs latestConsumer Groups & Consumer RebalanceIn this section, we will learn about Consumer Groups and Consumer rebalance.Scaling the Consumer using Consumer GroupsConsumer RebalanceConsumer Rebalance & max-poll-interval-msConsumer Offsets – Default and Manual Offset Management – Hands-OnCommitting Offsets – Default Offset Commit StrategyManually Committing OffsetsCommitting Offsets Synchronously – using commitSync()Committing Offsets Asynchronously – using commitAsync()Committing Specific Offsets – using CommitSync()By the end of this, you will have a complete understanding of how Apache Kafka works and how to build Kafka client applications using Producer and Consumer API.