Answer – D
The below information from the AWS Documentation helps to supplement this requirement.
Capturing Table Activity with DynamoDB Streams
Many applications can benefit from capturing changes to items stored in a DynamoDB table in time when such changes occur. Here are some example use cases:
An application in one AWS region modifies the data in a DynamoDB table. A second application in another AWS region reads these data modifications and writes the data to another table, creating a replica that stays in sync with the original table.
A popular mobile app modifies data in a DynamoDB table at the rate of thousands of updates per second. Another application captures and stores data about these updates, providing near real-time usage metrics for the mobile app.
A global multi-player game has a multi-master topology, storing data in multiple AWS regions. Each master stays in sync by consuming and replaying the changes that occur in the remote regions.
An application automatically sends notifications to the mobile devices of all friends in a group as soon as one friend uploads a new picture.
A new customer adds data to a DynamoDB table. This event invokes another application that sends a welcome email to the new customer.
DynamoDB Streams enables solutions such as these and many others. DynamoDB Streams captures a time-ordered sequence of item-level modifications in any DynamoDB table and stores this information in a log for up to 24 hours. Applications can access this log and view the data items as they appeared before and after they were modified, in near real-time.
Options A and B are incorrect since these would result in a lot of throughput requirement for the table.
Option C is incorrect since this is used for the replication of data.
For more information on DynamoDB streams, please refer to the below URL-
https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Streams.html