I wanted to understand some of the real world use cases where using Apache Kafka as the message broker is most suitable. Considering Kafka topics cannot hold the messages indefinitely.
This was the original use case for Kafka. LinkedIn needed to rebuild its user activity tracking pipeline as a set of real-time publish-subscribe feeds. Activity tracking is often very high volume, as each user page view generates many activity messages (events): user clicks.
The original use case for Kafka was to be able to rebuild a user activity tracking pipeline as a set of real-time publish-subscribe feeds. This means site activity (page views, searches, or other actions users may take) is published to central topics with one topic per activity type.
Examples: SIEM, Streaming Machine Learning, Stateful Stream Processing. The following covers a few architectures and use cases. The presentation afterward goes into much more detail and examples from various companies about these and other use cases from various industries: Financial Services.
Platforms like Kafka comes handy in these type use cases. Kafka has become popular in companies like LinkedIn, Netflix, Spotify, and others. Netflix, for example, uses Kafka for real-time monitoring and as part of their data processing pipeline.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With