AWS Certified Developer – Associate (DVA-C02) — Question 36
A developer is creating an application that will be deployed on IoT devices. The application will send data to a RESTful API that is deployed as an AWS Lambda function. The application will assign each API request a unique identifier. The volume of API requests from the application can randomly increase at any given time of day.
During periods of request throttling, the application might need to retry requests. The API must be able to handle duplicate requests without inconsistencies or data loss.
Which solution will meet these requirements?
Answer options
- A. Create an Amazon RDS for MySQL DB instance. Store the unique identifier for each request in a database table. Modify the Lambda function to check the table for the identifier before processing the request.
- B. Create an Amazon DynamoDB table. Store the unique identifier for each request in the table. Modify the Lambda function to check the table for the identifier before processing the request.
- C. Create an Amazon DynamoDB table. Store the unique identifier for each request in the table. Modify the Lambda function to return a client error response when the function receives a duplicate request.
- D. Create an Amazon ElastiCache for Memcached instance. Store the unique identifier for each request in the cache. Modify the Lambda function to check the cache for the identifier before processing the request.
Correct answer: B
Explanation
The correct answer is B because using Amazon DynamoDB allows for efficient storage and retrieval of the unique identifiers, enabling the Lambda function to check for duplicates before processing and ensuring that it can handle increased request volumes without data loss. Option A, while feasible, introduces more complexity and potential latency with a relational database, while options C and D do not effectively handle the need for managing duplicate requests without leading to potential inconsistencies.