Amazon AWS vs. Amazon Kinesis Streams
Amazon SQS is a hosted queue for storing messages as they travel between distributed application components and helps you decouple these components. SQS provides common middleware constructs such as dead-letter queues and poison-pill management. It also provides a generic web services API and can be accessed by the AWS SDK. SQS supports both standard and FIFO queues.
Use SQS when you need each unique message to be consumed only once and for cases such as following:
-
Decoupling the components of an application
-
You have a queue and want to track the successful completion of each item independently. After a configured visibility timeout, Amazon SQS deletes acknowledged messages and redelivers failed messages.
-
-
Configuring individual message delay
-
You have a job queue and you need to schedule individual jobs with a delay. With SQS, you can configure individual messages to have a delay of up to 15 minutes.
-
-
Dynamically increasing concurrency or throughput at read time
-
You have a queue and want to add more readers temposarily. With Kinesis Streams, you must provision enough shards upfront to scale up. SQS requires no pre-provisioning.
-
-
Scaling transparently
-
SQS can scale transparently to handle the load without any explicit provisioning instructions.
-
Amazon Kinesis Streams allows real-time processing of streaming big data and the ability to read and replay records to multiple Amazon Kinesis Applications. The Amazon Kinesis Client Library (KCL) delivers all records for a given partition key to the same record processor, making it easier to build multiple applications that read from the same Amazon Kinesis stream.
Use Amazon Kinesis Streams when you need multiple consumers to be able to process each record and for use cases such as the following:
-
Routing related records to the same record processor
-
You stream MapReduce. Actions such as counting and aggregation are simpler when all records for a given key are routed to the same record processor.
-
-
Allowing multiple applications to consume the same stream concurrently
-
You have one application that updates a real-time dashboard and another that archives data to Amazon Redshift. You want both applications to consume data from the same stream concurrently and independently.
-
References (Deprecated):
- heartin's blog
- Log in or register to post comments
Recent comments