What is Kafka and How does it work?