Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
24 lines (14 sloc) 1.94 KB

4- AWS Kinesis

AWS Kinesis is a streaming based distributed messaging technology; it uses publish/subscribe mechanism for loose coupling between senders and receivers. It is designed for extremely high throughput for realtime applications.

High Level Architecture

Streaming and the concept of Stream itself is the central idea behind Kinesis. It is pretty similar to Apache Kafka with some differences. It is also suitable for implementing Event Sourcing and CQRS pattern, which is commonly used in Microservices Architecture because of the out-of-the-box support for high throughput messaging and publish/subscribe mechanism.

product-page-diagram_Amazon-Kinesis-Data-Streams

Evaluation Table - Details
Method Evaluation Implementation Readiness
dequeue() Possiblity getRecords() - ShardIterator needs to be managed behind the scenes. Stream can be Queue name. It can use getShardIterator(), before the call.
acknowledge() Possiblity Need to maintain the ShardIterator & SequenceNumber associated with it, using getShardIterator(). We can save NextShardIterator from getRecords() to acknowledge the message.
subscribe() Workaround Workaround - batch reads with long polling can be implemented, example Long Polling Subscribe Mechanism in AWS Kinesis
reject() Possiblity If we don't move the ShardIterator to NextShardIterator, we are pretty much staying on the same message.
push() Possiblity Since you will have to provide stream, data & partition; we need to have some strategy to for partition selection; and need to maintain these values for Consumers.

Legend

You can’t perform that action at this time.