A global logistics network needs to capture telemetry from IoT sensors. During peak delivery windows, the sensors transmit status updates at a combined rate of writes per second. The application requires sub-millisecond latency when querying the most recent status of any specific device. A solutions architect must design a high-performing database layer that scales efficiently and prevents write bottlenecks. Which database architecture should the solutions architect implement to satisfy these performance requirements?
- Configure an Amazon DynamoDB table with the device ID as the partition key and the timestamp as the sort key. Deploy an Amazon DynamoDB Accelerator (DAX) cluster to cache read operations.Answer
- BConfigure an Amazon DynamoDB table with the timestamp as the partition key and the device ID as the sort key. Deploy an Amazon DynamoDB Accelerator (DAX) cluster to cache read operations.
- CConfigure an Amazon RDS for PostgreSQL database with Multi-AZ enabled. Create three read replicas to handle the read traffic, and configure the application to promote a read replica to the primary role in the event of a failure.
- DConfigure an Amazon DynamoDB table with the device ID as the partition key. Deploy an Amazon ElastiCache for Redis cluster in front of the table to intercept all write operations and asynchronously commit them to the DynamoDB table.
Answer
Configure an Amazon DynamoDB table with the device ID as the partition key and the timestamp as the sort key, and deploy an Amazon DynamoDB Accelerator (DAX) cluster to cache read operations.
The correct architecture uses a high-cardinality partition key (device ID) to distribute write traffic evenly across physical partitions, avoiding throttling bottlenecks. Adding DynamoDB Accelerator (DAX) caches read requests, delivering sub-millisecond (microsecond) latency for the application's queries.
Step-by-Step Solution
Key Concept
Avoiding partition hot-spotting in Amazon DynamoDB by choosing a high-cardinality partition key (device ID instead of a timestamp) and using DAX to achieve sub-millisecond read latency.
Estimated Time:2m 0s