What should a solutions architect do to meet these requirements?
Enable S3 Event Notifications for new objects to an Amazon Simple Queue Service (Amazon SQS) FIFO queue. Subscribe all applications to the queue for processing.
Enable S3 Event Notifications for new objects to an Amazon Simple Queue Service (Amazon SQS) standard queue. Create an additional SQS queue for all applications, and subscribe all applications to the initial queue for processing.
Enable S3 Event Notifications for new objects to separate Amazon Simple Queue Service (Amazon SQS) FIFO queues. Create an additional SQS queue for each application, and subscribe each queue to the initial topic for processing.
Enable S3 Event Notifications for new objects to an Amazon Simple Notification Service (Amazon SNS) topic. Create an Amazon Simple Queue Service (Amazon SQS) queue for each application, and subscribe each queue to the topic for processing.
Explanations:
Using a FIFO queue is unnecessary and inefficient for parallel processing. FIFO queues guarantee order, which is not needed here, and could limit the ability to process events in parallel.
A standard SQS queue allows parallel processing, but subscribing all applications to the same queue is inefficient. It doesn’t offer the needed isolation for each application’s processing logic, and might lead to race conditions.
While using separate FIFO queues could provide isolation, using FIFO queues for each application introduces unnecessary ordering constraints. SQS standard queues would suffice for parallel processing, making FIFO queues over-complicated for this use case.
Using an SNS topic to send notifications to multiple SQS queues for each application is an ideal solution. It allows for parallel processing, provides isolation between applications, and SNS ensures the events are broadcast to all subscribers.