Main notes taken from the book Kafka: The Definitive Guide: Real-Time Data and Stream Processing at Scale
CHAPTER 3: Kafka Producers: Writing Messages to Kafka
CHAPTER 4: Kafka Consumers: Reading Data from Kafka
CHAPTER 5: Managing Apache Kafka Programmatically
CHAPTER 7: Reliable Data Delivery
CHAPTER 8: Exactly-Once Semantics
CHAPTER 9: Building Data Pipelines