When Not To Use Apache Kafka (Lightboard Video)
When not to use Apache Kafka, do's and don't's; no matter if you use open source, Confluent, Amazon MSK, Event Hubs, Redpanda, Warpstream, et al.
Join the DZone community and get the full member experience.
Join For FreeApache Kafka is the de facto standard for data streaming to process data in motion. With its significant adoption growth across all industries, I get a very valid question every week: When should we not use Apache Kafka? What limitations does the event streaming platform have? When does Kafka simply not provide the needed capabilities? How do we qualify Kafka if it is not the right tool for the job? This blog post contains a lightboard video that gives you a twenty-minute explanation of the do's and don't's.
Disclaimer: This blog post shares a lightboard video to watch an explanation about when NOT to use Apache Kafka.
What Is Apache Kafka, and What Is It Not?
Kafka is often misunderstood. For instance, I still hear way too often that Kafka is a message queue. Part of the reason is that some vendors only pitch it for a specific problem (such as data ingestion into a data lake or data warehouse) to sell their products. So, in short:
Kafka Is…
- A scalable real-time messaging platform to process millions of messages per second.
- A data streaming platform for massive volumes of big data analytics and small volumes of transactional data processing.
- A distributed storage provides true decoupling for backpressure handling, support of various communication protocols, and replayability of events with guaranteed ordering.
- A data integration framework (Kafka Connect) for streaming ETL.
- A data processing framework (Kafka Streams) for continuous stateless or stateful stream processing.
This combination of characteristics in a single platform makes Kafka unique (and successful).
Kafka Is Not…
- A proxy for millions of clients (like mobile apps) – but Kafka-native proxies (like REST or MQTT) exist for some use cases.
- An API Management platform – but these tools are usually complementary and used for the creation, life cycle management, or monetization of Kafka APIs.
- A database for complex queries and batch analytics workloads – but good enough for transactional queries and relatively simple aggregations (especially with ksqlDB).
- An IoT platform with features such as device management – but direct Kafka-native integration with (some) IoT protocols such as MQTT or OPC-UA is possible and the appropriate approach for (some) use cases.
- A technology for hard real-time applications such as safety-critical or deterministic systems – but that’s true for any other IT framework, too. Embedded systems are a different software!
For these reasons, Kafka is complementary, not competitive, to these other technologies. Choose the right tools for the job and combine them!
Lightboard Video: When Not To Use Apache Kafka
The following video explores the key concepts of Apache Kafka. Afterward, the do's and don't's of Kafka show how to complement data streaming with other technologies for analytics, APIs, IoT, and other scenarios.
Data Streaming Vendors and Cloud Services
The research company Forrester defines data streaming platforms as a new software category in a new Forrester Wave. Apache Kafka is the de facto standard used by over 100,000 organizations.
Plenty of vendors offer Kafka platforms and cloud services. Many complementary open-source stream processing frameworks like Apache Flink and related cloud offerings emerged. Competitive technologies like Pulsar, Redpanda, or WarpStream try to get market share by leveraging the Kafka protocol.
Apache Kafka Is a Data Streaming Platform: Combine It With Other Platforms When Needed!
Over 150,000 organizations use Apache Kafka in the meantime. The Kafka protocol is the de facto standard for many open-source frameworks, commercial products, and serverless cloud SaaS offerings.
However, Kafka is not an allrounder for every use case. Many projects combine Kafka with other technologies, such as databases, data lakes, data warehouses, IoT platforms, and so on. Additionally, Apache Flink is becoming the de facto standard for stream processing (but Kafka Streams is not going away and is the better choice for specific use cases).
Where do you (not) use Apache Kafka? What other technologies do you combine Kafka with? Let’s connect on LinkedIn and discuss it! Stay informed about new blog posts by subscribing to my newsletter.
Published at DZone with permission of Kai Wähner, DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.
Comments