Answer – B
Whenever the question presents a scenario where the application needs to analyze real-time data such as clickstream (i.e.massive real-time data analysis), most of the time the best option is Amazon Kinesis. It is used to collect and process large streams of data records in real-time.
You`ll create data-processing applications, known as Amazon Kinesis Streams applications. A typical Amazon Kinesis Streams application reads data from an Amazon Kinesis stream as data records. These applications can use the Amazon Kinesis Client Library, and they can run on Amazon EC2 instances. The processed records can be sent to dashboards, used to generate alerts, dynamically change pricing and advertising strategies, or send data to a variety of other AWS services.
The below diagrams from the AWS documentation shows how you can create custom streams in Amazon Kinesis.
Refer to page 129 on the below link.
https://docs.aws.amazon.com/streams/latest/dev/kinesis-dg.pdf
Application Name
The KCL requires an application name that is unique across your applications and across Amazon DynamoDB tables in the same Region. It uses the application name configuration value in the following ways: • All workers associated with this application name are assumed to be working together on the same stream. These workers may be distributed on multiple instances. If you run an additional instance of the same application code, but with a different application name, the KCL treats the second instance as an entirely separate application that is also operating on the same stream. • The KCL creates a DynamoDB table with the application name and uses the table to maintain state information (such as checkpoints and worker-shard mapping) for the application. Each application has its own DynamoDB table
For more information on Kinesis, please visit the below link-
http://docs.aws.amazon.com/streams/latest/dev/introduction.html