Amazon Simple Queue Service (SQS) vs. Apache Kafka

Overview
ProductRatingMost Used ByProduct SummaryStarting Price
Amazon SQS
Score 7.9 out of 10
N/A
Amazon Web Services (AWS) Provides the Amazon Simple Queue Service (SQS), a managed message queue service which supports the safe decoupling and distribution of different components in a cloud infrastructure and cloud applications.
$0
per GB
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 Simple Queue Service (SQS)Apache Kafka
Editions & Modules
All Data Transfer In
$0.00
per GB
Standard Queue
$0.00000004
per request
FIFO Queue
$0.00000005
per request
No answers on this topic
Offerings
Pricing Offerings
Amazon SQSApache Kafka
Free Trial
NoNo
Free/Freemium Version
YesNo
Premium Consulting/Integration Services
NoNo
Entry-level Setup FeeNo setup feeNo setup fee
Additional Details
More Pricing Information
Community Pulse
Amazon Simple Queue Service (SQS)Apache Kafka
Best Alternatives
Amazon Simple Queue Service (SQS)Apache Kafka
Small Businesses

No answers on this topic

No answers on this topic

Medium-sized Companies
Apache Kafka
Apache Kafka
Score 7.7 out of 10
IBM MQ
IBM MQ
Score 9.6 out of 10
Enterprises
Apache Kafka
Apache Kafka
Score 7.7 out of 10
IBM MQ
IBM MQ
Score 9.6 out of 10
All AlternativesView all alternativesView all alternatives
User Ratings
Amazon Simple Queue Service (SQS)Apache Kafka
Likelihood to Recommend
7.1
(0 ratings)
8.0
(0 ratings)
Likelihood to Renew
-
(0 ratings)
9.0
(0 ratings)
Usability
-
(0 ratings)
8.0
(0 ratings)
Support Rating
10.0
(0 ratings)
8.4
(0 ratings)
User Testimonials
Amazon Simple Queue Service (SQS)Apache Kafka
Likelihood to Recommend
While we use AmazonSimple Queue Service (SQS) in our serverless applications, it would be a great option to handle queue management for any internet-connect application. It provides the most benefit in situations where your application or service must maintain mission-critical queue of messages or jobs. If you're already using other AWS services you will find the greatest benefit.
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
  • SQS is reliable and fully managed. Our engineers do not have to worry about running RabbitMQ.
  • SQS is very inexpensive.
  • SQS allows data to be encrypted in transit, which may be required for compliance in some products.
  • FIFO queues provide exactly-once processing.
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
  • More frequest polling will be expensive
  • No detailed monitoring of queues, just current data and regular monitoring is present
  • No way to fetch messages back from the queue
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
Online blogging and documentation for SQS is great. There are many examples of implementing it and if you look hard enough, more than likely there are examples that meet the exact case with which you are working
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
To be blunt: Amazon SQS was the simplest to implement given our requirements. Other services in this space work just as well, and SQS does not have any benefits outside of being the easiest to implement when using an otherwise fully AWS stack. AWS itself even has other solutions that would work just as well, however, SQS had the most reasonable pricing model for our given situation. That will certainly not always be the case, but in several of the instances where we are using it, it just made the most sense.
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
  • Under the AWS Echo system, it provides great operating power to the application.
  • The cost is much less for messages, and it also supports a multi-user option.
  • Not for us, but for a larger organization, low throughput might become an issue for a standard queue type.
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