A multiplayer gaming startup is redesigning its matchmaking and live tournament leaderboard system. The system experiences high, unpredictable spikes in traffic during weekend tournaments, but remains mostly idle during weekdays. The company wants to redesign the system to align with the AWS Cloud design principles of 'loose coupling' and 'services, not servers' to minimize operational overhead and handle failures gracefully. Which of the following architectural decisions best implement these design principles? (Select TWO.)
- Buffer incoming matchmaking requests using Amazon Simple Queue Service (Amazon SQS) and process them asynchronously using AWS Lambda.Answer
- Store real-time tournament leaderboard data in Amazon DynamoDB and use DynamoDB Streams to automatically trigger downstream notification functions.Answer
- CConfigure an Amazon EC2 Auto Scaling group with a high minimum capacity of virtual machines to guarantee immediate availability for all tournament spikes.
- DHost the matchmaking logic and database on a single, large memory-optimized Amazon EC2 instance to minimize inter-service communication latency.
- EEstablish direct, synchronous API calls between the game client, matchmaking service, and tournament database to ensure real-time transaction consistency.
Answer
The correct choices are the option to buffer requests using Amazon SQS and process them using AWS Lambda, and the option to store data in Amazon DynamoDB and use DynamoDB Streams to trigger notifications.
The option to buffer matchmaking requests with Amazon SQS and process them with AWS Lambda aligns with 'loose coupling' by inserting a message queue between request submission and processing, and with 'services, not servers' by utilizing serverless computing. Similarly, using Amazon DynamoDB and DynamoDB Streams to trigger Lambda functions uses fully managed services ('services, not servers') and integrates them asynchronously ('loose coupling').
Step-by-Step Solution
Key Concept
Loose coupling and services, not servers are fundamental AWS design principles. Loose coupling reduces inter-dependencies between components, preventing cascading failures and allowing independent scaling. Services, not servers helps customers focus on application logic rather than managing infrastructure.