What should a solutions architect recommend to decouple the system?
Use Amazon Kinesis Data Streams to capture the data and store the JSON object in Amazon S3.
Use Amazon Kinesis Data Firehose to capture the data and store the JSON object in Amazon S3.
Use Amazon Simple Queue Service (Amazon SQS) FIFO queues to capture the data and EC2 instances to process the messages in the queue.
Use Amazon Simple Notification Service (Amazon SNS) to capture the data and EC2 instances to process the messages sent to the Application Load Balancer.
Explanations:
Amazon Kinesis Data Streams is designed for real-time data processing and capturing streaming data. While it can store JSON objects, it doesn’t directly provide durable storage. S3 would only be used for batch storage, which may not guarantee that updates are processed in order.
Amazon Kinesis Data Firehose is designed for loading streaming data into data lakes, storage, and analytics services. It does not provide a way to guarantee ordering of updates as it is more focused on batch processing rather than real-time updates, which is essential in this use case.
Amazon Simple Queue Service (SQS) FIFO queues allow messages to be processed in the exact order they are sent. This is critical for ensuring that game updates are not lost and are processed sequentially. Using EC2 instances to process the messages ensures that updates are handled reliably and durably.
Amazon Simple Notification Service (SNS) is a pub/sub messaging service that does not guarantee message ordering or durability in the same way that SQS FIFO queues do. It is better suited for broadcasting messages to multiple subscribers rather than managing a queue of messages to ensure they are processed in order.