What is Apache Kafka and how is it used in data engineering and real-time data processing? How does Kafka enable high-throughput and distributed data streaming? What are the main components and architecture of Apache Kafka? How is Kafka used in applications like event streaming, log management, and messaging systems? What are the advantages and limitations of using Apache Kafka in modern data platforms?