An online retail application is being developed to handle erratic and potentially high numbers of incoming orders. Each order must be processed, but immediate processing is not required. Which approach would ensure the application remains scalable while maintaining loose coupling between the order reception and processing components?
Logging of each transaction to an Amazon Kinesis stream, with continuous processing by an auto-scaling group of virtual servers.
Immediate processing of orders through synchronous execution within the same service that captures the customer transactions.
Broadcasting each order to various services using Amazon Simple Notification Service (SNS) for simultaneous processing.
Distribution of incoming orders via an Elastic Load Balancer (ELB) to an auto-scaled group of processing microservices.
Insertion of order details into an Amazon DynamoDB table, triggering an AWS Lambda function to process the order.
Placement of orders into an Amazon Simple Queue Service (Amazon SQS) queue that allows deferred processing by a dedicated order management component.