SQS vs SNS vs Kinesis — Difference

In this article, I’ll talk about difference between SQS, SNS & Kinesis.
KINESIS VS SQS VS SNS
Kinesis — A Kinesis Data Stream.
Simple Queue Service — A SQS Standard Queue.
Simple Notification Service — A SNS Topic.
SQS: Simple Queue Service
In SQS, consumers pull data.
Data is also deleted after being consumed from consumer/subscriber.
We can have many consumers(workers), as many we want.
In SQS, we don’t need to provision throughput.
SQS doesn’t provide order guarantee (except FIFO Type Queues).
We can create individual message delay capability in SQS at time of message publish to Queue.
My Article on SQS: **https://levelup.gitconnected.com/aws-integration-messaging-sqs-755763530bcb**
SNS: Simple Notification Service
In SNS, we push data to many subscribers.
We can have up to 10,000,000 subscribers in SNS.
In SNS, we have publish data, data is not persisted(It would be lost if not delivered)
SNS follows pub-sub model.
We can have up to 100,000 topics.
Same as SQS, we don’t need to provision throughput in SNS.
We can integrates SNS with SQS for fan-out.
My Article on SNS: **https://medium.com/@kumargaurav1247/aws-sns-simple-notification-service-1972262b8564**
Kinesis:
In Kinesis, consumers pulls data.
We can have any numbers of consumers in Kinesis.
In Kinesis, we have possibility to replay data.
Kinesis is basically for Real-time big data, analytics & ETL.
We have ordering at shard level in Kinesis.
We can mention the data expiry days.
We should must provision throughput in Kinesis.



