What should the developer do to meet these requirements?
Create an Amazon Kinesis Data Firehose delivery stream to process the requests. Create an Amazon Kinesis data stream. Modify the application to write the requests to the Kinesis data stream.
Create an AWS Lambda function to process the requests. Create an Amazon Simple Notification Service (Amazon SNS) topic. Subscribe the Lambda function to the SNS topic. Modify the application to write the requests to the SNS topic.
Create an AWS Lambda function to process the requests. Create an Amazon Simple Queue Service (Amazon SQS) standard queue. Set the SQS queue as an event source for the Lambda function. Modify the application to write the requests to the SQS queue.
Create an AWS Lambda function to process the requests. Create an Amazon Simple Queue Service (Amazon SQS) FIFO queue. Set the SQS queue as an event source for the Lambda function. Modify the application to write the requests to the SQS queue.
Explanations:
While Kinesis Data Streams can handle real-time data and provide some order, they do not guarantee message delivery without duplication. Also, they require additional complexity in managing the data streams and scaling, which may not be ideal for the application’s needs for ordered and reliable processing.
Using SNS for delivering shipping requests does not ensure order since SNS is designed for fan-out messaging and does not guarantee the order of message delivery. Additionally, it does not provide a mechanism to prevent duplicate requests or to ensure that messages are processed only once.
SQS standard queues allow for high throughput and scalability but do not guarantee the order of messages, and they may result in duplicate messages being delivered. This does not meet the requirements of avoiding duplicate shipping requests and processing them in order.
Using an SQS FIFO queue guarantees that messages are processed in the order they are sent and prevents duplicates. This directly addresses the requirements of delivering shipping requests reliably and in the correct order, making it the most suitable option for the application.