What is Apache Kafka and how does it work?