A gaming company is launching a multiplayer game and needs to design a telemetry ingestion pipeline. The game clients will send player state updates to the pipeline. The pipeline must ingest the updates, guarantee that updates are processed in the strict order they are received for each individual game session, and write them to Amazon DynamoDB. During peak usage, the pipeline is expected to receive messages per second, with an average message size of . Which solution meets these requirements with the highest performance and the lowest operational overhead?
- Configure an Amazon Kinesis Data Stream in On-Demand capacity mode. Write the telemetry messages to the stream using the game session ID as the partition key. Configure an AWS Lambda function to consume the messages from the stream and write them to Amazon DynamoDB.Answer
- BConfigure an Amazon SQS Standard queue to ingest the telemetry messages. Configure an AWS Lambda function to consume the messages from the queue and write them to Amazon DynamoDB.
- CConfigure an Amazon Kinesis Data Stream in Provisioned capacity mode with shards. Write the telemetry messages to the stream using the game session ID as the partition key. Configure an AWS Lambda function to consume the messages from the stream and write them to Amazon DynamoDB.
- DConfigure an Amazon Kinesis Data Stream in On-Demand capacity mode. Write the telemetry messages to the stream using a monotonically increasing sequence number as the partition key. Configure an AWS Lambda function to consume the messages and write them to Amazon DynamoDB using the sequence number as the partition key.
Answer
Configure an Amazon Kinesis Data Stream in On-Demand capacity mode, using the game session ID as the partition key, and consume the stream with AWS Lambda to write the data to Amazon DynamoDB.
The correct solution uses Amazon Kinesis Data Streams in On-Demand capacity mode, partition key based on the game session ID, and AWS Lambda to write to DynamoDB. On-Demand mode automatically scales shard capacity to handle the peak write throughput of and without operational management. Partitioning by game session ID ensures that updates for any given game session are routed to the same shard, guaranteeing sequential processing of updates.
Step-by-Step Solution
Key Concept
Choosing high-performing ingestion services and scaling mechanisms while maintaining message ordering through partitioning.