Real world use cases where Apache Kafka is used
Here's an example where it's used in retaining the messages indefinitely: https://www.confluent.io/blog/publishing-apache-kafka-new-york-times/
There's use cases for Kafka Streams specifically listed under https://kafka.apache.org/documentation/streams/
Here's an example of its use in banking: https://www.confluent.io/blog/real-time-financial-alerts-rabobank-apache-kafkas-streams-api/
There's several companies talking about how they use Kafka in the recordings here: https://www.confluent.io/kafka-summit-sf17/resource/
This is a very broad question with no single correct answer. But: the place I use it most is cases where you need to send a message from a machine to another machine, but don't know which machine exactly.
For example, you're Twitter, and you want to send a new tweet to the browser of everyone following a user. In this case, Users X, Y, and Z (each with their own connection to your servers) are all listening for a message from User Q (on their own connection to your servers). When Q gets a message, it doesn't know where X, Y, and Z are connected exactly, but it knows that perhaps someone would like to know about the message. So, it sends it to the broker, and lets the broker route it to the right places.