Amazon Kinesis vs. Apache Kafka

Overview
ProductRatingMost Used ByProduct SummaryStarting Price
Amazon Kinesis
Score 9.7 out of 10
N/A
Amazon Kinesis is a streaming analytics suite for data intake from video or other disparate sources and applying analytics for machine learning (ML) and business intelligence.
$0.01
per GB data ingested / consumed
Apache Kafka
Score 7.7 out of 10
N/A
Apache Kafka is an open-source stream processing platform developed by the Apache Software Foundation written in Scala and Java. The Kafka event streaming platform is used by thousands of companies for high-performance data pipelines, streaming analytics, data integration, and mission-critical applications.N/A
Pricing
Amazon KinesisApache Kafka
Editions & Modules
Amazon Kinesis Video Streams
$0.00850
per GB data ingested / consumed
Amazon Kinesis Data Streams
$0.04
per hour per stream
Amazon Kinesis Data Analytics
$0.11
per hour
Amazon Kinesis Data Firehose
tiered pricing starting at $0.029
per month first 500 TB ingested
No answers on this topic
Offerings
Pricing Offerings
Amazon KinesisApache Kafka
Free Trial
NoNo
Free/Freemium Version
NoNo
Premium Consulting/Integration Services
NoNo
Entry-level Setup FeeNo setup feeNo setup fee
Additional Details
More Pricing Information
Community Pulse
Amazon KinesisApache Kafka
Considered Both Products
Amazon Kinesis
Chose Amazon Kinesis
Kinesis is oriented to streaming in a scalable way large volumes of information in real-time. Glue is more an ETL so it is not well suited for real-time applications while Beanstalk is more a simple container platform. Lambda could do the job but it would require a lot of …
Chose Amazon Kinesis
The main benefit was around set up - incredibly easy to just start using Kinesis. Kinesis is a real-time data processing platform, while Kafka is more of a message queue system. If you only need a message queue from a limited source, Kafka may do the job. More complex use …
Chose Amazon Kinesis
Actually we didn't select Kinesis, we were forced into using it because SQS wasn't yet supported by Lambda. Unlike Kinesis, SQS supports both FIFO and standard queues which let us control order of events processed, as well as handle retry logic, failover logic, and set up …
Apache Kafka
Chose Apache Kafka
Apache Kafka is built for scale. From high throughput and real-time data streaming, it has a strong advantage over RabbitMQ with its low latency. This put Apache Kafka at the forefront as the platform of choice for large datasets messaging and ensuring scalability when data …
Chose Apache Kafka
It had the clustering functionality and gave tolerance against machine failure.
Chose Apache Kafka
- The biggest advantage of using Apache Kafka is that it is cloud agnostic - It handles super high volume, is fault tolerance, high performance
Chose Apache Kafka
Apache Kafka can work at a higher scale as compared to SQS. It can work with higher size per message and millions of messages per second. Moreover it can be scaled horizontally by adding more brokers to the cluster. SQS is good enough for simple use cases like making a task …
Chose Apache Kafka
I used other messaging/queue solutions that are a lot more basic than Confluent Kafka, as well as another solution that is no longer in the market called Xively, which was bought and "buried" by Google. In comparison, these solutions offer way fewer functionalities and respond …
Chose Apache Kafka
Apache Kafka is open-sourced, scales great has cloud agnostics and performs better than Amazon Kinesis [in my view]. Amazon Kinesis has some limitations and vendor lockin is not something I [like]. With Confluent operators you can easily install it on a kubernetes cluster.
Chose Apache Kafka
We really needed to get away from using a SQL database to act as a queue for processing records, so a new solution was needed. Kafka is a leading software application initially designed for queuing messages which is essentially what we were looking for. It has a great user …
Chose Apache Kafka
Kafka is simple and lower in price.
Chose Apache Kafka
For us, Kafka really doesn't have a 1:1 alternative. We have used ActiveMQ extensively and we still use it as a lighter option for small messages. The situation is similar with Redis - although it could be used like a Kafka alternative, we do use it just as a per-component …
Chose Apache Kafka
Apache Kafka is much more scalable and more reliable. Does not depend on memory, works well on rotational disks and that makes it a cheaper to use solution on low hardware requirements. Running multiple consumers on the same topic can also mean processing the same data again …
Chose Apache Kafka
All stack tech helps our app and system. These technologies allow us to have the data available faster between different regions (due to our particular configuration) and thus the data and processing load of each system is lower. This allows the systems to be used more …
Chose Apache Kafka
We had lots of problems with active mq. That is why we started using Apache Kafka.
Chose Apache Kafka
Kafka is not a real messaging broker implementation as RabbitMQ or TIBCO EMS/JMS are. Although it can be used as messaging, we like the idea behind the Kafka (data isn't "passing by," instead it remains centra, so the client can revisit the data if necessary). This also …
Chose Apache Kafka
Confluent Cloud is still based on Apache Kafka but it has a subscription fee so, from a long term perspective, it is wiser to deploy your own Kafka instance that spans public and private cloud. Amazon Kinesis, Google Cloud Pub/Sub do not do well for a very number of messages …
Chose Apache Kafka
I would only use RabbitMQ over Kafka when you need to have delay queues or tons of small topics/queues around.
I don't know too much about Pulsar - currently evaluating it - but it's supposed to have the same or better throughput while allowing for tons of queues. Stay tuned - I …
Chose Apache Kafka
Kafka is faster and more scalable, also "free" as opensource (albeit we deploy using a commercial distribution). Infrastructure tends to be cheaper. On the other hand, projects must adapt to Kafka APIs that sometimes change and BAU increases until a major 1.x version comes out …
TrustRadius Insights
Amazon KinesisApache Kafka
Highlights

TrustRadius
Research Team Insight
Published

Apache Kafka and Amazon Kinesis are both streaming analytics software solutions that perform real-time reporting and create visualizations on streaming data collected from multiple sources. Businesses of all sizes use both software options, but larger organizations are more likely to use Apache Kafka, while Amazon Kinesis users are evenly spread across businesses of all sizes.

Features

Apache Kafka and Amazon Kinesis both offer essential streaming analytics features, including reporting and visualization creation, but they also have a few features that set them apart from each other.

Apache Kafka is an open-source technology. Being open-source means that Apache Kafka’s code is available for free, and an active community of developers is continuously contributing to it, resulting in quick bug fixes and feature updates. Apache Kafka can be deployed on-premises, on the cloud, or with a hybrid approach. In addition to flexible deployments, Apache Kafka is also very scalable and allows for the analysis of huge amounts of data.

Amazon Kinesis is built to run on AWS and integrate with other AWS technologies, making it a great choice for organizations that need to analyze data from AWS software. Additionally, Amazon Kinesis requires minimal configuration for features like data replication. The usability of Amazon Kinesis can make it more usable for an organization with few technical staff members. Amazon Kinesis also provides high performance and reporting speed.

Limitations

Apache Kafka and Amazon Kinesis both provide robust features, but they also have a few limitations.

Apache Kafka offers greater flexibility in deployment and scale, but it doesn’t integrate as well with AWS technologies compared to Amazon Kinesis. Additionally, Apache Kafka requires technical users or vendor support for configuration and implementation. Lastly, Apache Kafka performs slightly slower than Amazon Kinesis.

Amazon Kinesis offers usability and performance but lacks flexibility. Organizations must use a cloud deployment for Amazon Kinesis, as opposed to Apache Kafka’s multiple deployment options. Additionally, Amazon Kinesis isn’t open-source, which limits how low costs can be compared to DIY Apache Kafka implementations. Lastly, Amazon Kinesis is not as scalable as Apache Kafka due to a limited amount of shards, which hold data to be analyzed.

Pricing

Apache Kafka is an open-source technology, but if a company decides to go with a vendor, pricing can vary depending on the vendor chosen, level of support, and type of deployment. Though pricing can vary a lot, it can start as low as $40.00 per month.

Amazon Kinesis pricing depends on region, the number of shards, and optional features such as enhanced data retention. Though pricing can vary greatly, organizations can expect the essential features to start around $50.00 per month.

Features
Amazon KinesisApache Kafka
Streaming Analytics
Comparison of Streaming Analytics features of Product A and Product B
Amazon Kinesis
8.3
Ratings
3% above category average
Apache Kafka
-
Ratings
Real-Time Data Analysis10.00 Ratings00 Ratings
Data Ingestion from Multiple Data Sources9.00 Ratings00 Ratings
Low Latency9.00 Ratings00 Ratings
Integrated Development Tools9.00 Ratings00 Ratings
Data wrangling and preparation10.00 Ratings00 Ratings
Linear Scale-Out6.10 Ratings00 Ratings
Data Enrichment5.00 Ratings00 Ratings
Best Alternatives
Amazon KinesisApache Kafka
Small Businesses
IBM Streams (discontinued)
IBM Streams (discontinued)
Score 9.0 out of 10

No answers on this topic

Medium-sized Companies
Confluent
Confluent
Score 9.9 out of 10
IBM MQ
IBM MQ
Score 9.6 out of 10
Enterprises
Spotfire Streaming
Spotfire Streaming
Score 6.6 out of 10
IBM MQ
IBM MQ
Score 9.6 out of 10
All AlternativesView all alternativesView all alternatives
User Ratings
Amazon KinesisApache Kafka
Likelihood to Recommend
9.0
(0 ratings)
8.0
(0 ratings)
Likelihood to Renew
-
(0 ratings)
9.0
(0 ratings)
Usability
-
(0 ratings)
8.0
(0 ratings)
Support Rating
7.1
(0 ratings)
8.4
(0 ratings)
User Testimonials
Amazon KinesisApache Kafka
Likelihood to Recommend
Perfect for real-time data processing and streaming. Also, there's no need for any specific setup - you just start using it immediately and it easily integrates with the rest of AWS capabilities (like Redshift), although integration with Lambda could be better. You can make your overall analytics landscape way simpler with Kineses even if you have non-Amazon solutions like Tableau. It all integrates really well!
Read full review
For brokering messages, Confluent Kafka is well suited since it offers a managed solution ready to use. Scenarios where the solution is not very well suited are for example, where pricing is an issue. The solution costs quite a lot for basic usage (for example: for 3 clusters, pricing is above 100k$ a year).
Read full review
Pros
  • Integrating with other Amazon services
  • Scaling requests
  • Totally serverless platform
  • Simple management
Read full review
  • Apache Kafka is able to handle a large number of I/Os (writes) using 3-4 cheap servers.
  • It scales very well over large workloads and can handle extreme-scale deployments (eg. Linkedin with 300 billion user events each day).
  • The same Kafka setup can be used as a messaging bus, storage system or a log aggregator making it easy to maintain as one system feeding multiple applications.
Read full review
Cons
  • Improve integration with AWS Lambda
  • Some duplicate records coming from the stream
Read full review
  • The Kafka Tool is a community-made Java application that looks and feels from the past century.
  • Logging can be confusing. This certainly shows when we have to do troubleshooting.
  • Hybrid scenarios - pub/sub, but there are services in and outside a Kubernetes cluster. Then there are a ~3 options, but only 2 (the harder ones) are production-safe.
Read full review
Likelihood to Renew
No answers on this topic
Kafka has suited our use case very well so far. Going forward we are planning to expand our platform manifold so the load on Kafka and our reliance on Kafka is going to increase only.
Read full review
Usability
No answers on this topic
Apache Kafka is highly recommended to develop loosely coupled, real-time processing applications. Also, Apache Kafka provides property based configuration. Producer, Consumer and broker contain their own separate property file
Read full review
Support Rating
The documentation was confusing and lacked examples. The streams suddenly stopped working with no explanation and there was no information in the logs. All these were more difficult when dealing with enhanced fan-out. In fact, we were about to abort the usage of Kinesis due to a misunderstanding with enhanced fan-out.
Read full review
Support for Apache Kafka (if willing to pay) is available from Confluent that includes the same time that created Kafka at Linkedin so they know this software in and out. Moreover, Apache Kafka is well known and best practices documents and deployment scenarios are easily available for download. For example, from eBay, Linkedin, Uber, and NYTimes.
Read full review
Alternatives Considered
Kinesis is oriented to streaming in a scalable way large volumes of information in real-time. Glue is more an ETL so it is not well suited for real-time applications while Beanstalk is more a simple container platform. Lambda could do the job but it would require a lot of programming to accomplish the same as Kinesis. In fact, our solution employed the four elements for different tasks but using Kinesis as the message bus.
Read full review
Apache Kafka is built for scale. From high throughput and real-time data streaming, it has a strong advantage over RabbitMQ with its low latency. This put Apache Kafka at the forefront as the platform of choice for large datasets messaging and ensuring scalability when data scale up tremendously. RabbitMQ however has its strengths in traditional messaging. Routing and message delivery reliability are the bedrock of RabbitMQ and this is where RabbitMQ excels. In my previous workplace, RabbitMQ was of choice as reliability matters more than scale. In two words. Apache Kafka for scale, RabbitMQ for reliability. And for cloud deployment and large dataset messaging in what I am doing now, Apache Kafka is the default choice.
Read full review
Return on Investment
  • Caused us to need to re-engineer some basic re-try logic
  • Caused us to drop some content without knowing it
  • Made monitoring much more difficult
  • We eventually switched back to SQS because Kinesis is not the same as a Queue system
Read full review
  • Positive: bursts of traffic on special holidays are easy to handle because Kafka can absorb and buffer all the messages we need to process long enough to let an understaffed set of back-end services catch up on processing. Hard to put a number to it but we probably save $5k a month having fewer machines running.
  • Positive: makes decoupling the web and API services from the deeper back-end services easier by providing topics as an interface. This allowed us to split up our teams and have them develop independently of each other, speeding up software development.
  • Negative: our engineers have made mistakes such as accidentally dropping a few thousand messages due to the CLI being confusing to use, and as a result a customer lost some of their precious data. I'd say that was more our fault than Kafka's though.
Read full review
ScreenShots