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:
Amazon Kinesis Data Firehose is used for real-time streaming to a destination like S3, Redshift, etc., but does not provide guaranteed message ordering or deduplication. Kinesis Data Streams does support ordering, but this option does not address deduplication or the delivery and processing order in the context of warehouse requests.
Amazon SNS is a pub/sub service that does not guarantee message order or deduplication. It is not ideal for processing requests in order or avoiding duplicates. Additionally, SNS may deliver multiple copies of a message to multiple subscribers, which could lead to issues.
Amazon SQS standard queues provide at-least-once delivery, which could lead to duplicate messages being processed. While they do not guarantee order, using standard queues could cause issues with out-of-order processing in the case of this use case.
Using an Amazon SQS FIFO queue ensures that messages are processed exactly once and in the order they were sent. FIFO queues guarantee both message ordering and deduplication, which directly meets the requirements for delivering and processing shipping requests reliably.