An e-commerce platform uses Amazon DynamoDB as its primary database. The platform experiences occasional read throttling during flash sales. The operations team needs to ensure that read traffic is handled without errors, while keeping costs low. What should a DevOps engineer recommend?
DAX is a fully managed, in-memory caching service placed in front of DynamoDB, returning cached items with microsecond latency. By writing through and caching the frequently read flash-sale items, it absorbs the burst of read traffic before it reaches the table, which directly reduces consumed read capacity units and throttling events. This requires no costly rearchitecture or constantly adjusting provisioned throughput, making it the most appropriate solution for unpredictable read spikes.
Why this answer
DynamoDB Accelerator (DAX) is an in-memory cache for DynamoDB that reduces read load on the table by serving repeated read requests from cache. During flash sales, read traffic spikes on popular items; DAX absorbs these reads, preventing throttling and improving latency, while keeping costs low because it reduces the need to over-provision read capacity. This is the most cost-effective solution for read-heavy, repetitive access patterns.
Exam trap
The trap is thinking that increasing RCUs or using Global Tables is the best fix for read throttling, when the question emphasizes cost and handling read traffic without errors; DAX is the purpose-built caching solution.
How to eliminate wrong answers
Option B is wrong because increasing read capacity units (RCUs) during flash sales is a manual, reactive approach that can be costly if over-provisioned and still may not handle sudden spikes quickly enough; it also does not reduce costs. Option C is wrong because DynamoDB Streams capture item-level changes for replication or triggers, not for serving reads, and replicating to another table does not offload read traffic from the original table. Option D is wrong because Global Tables are for multi-region active-active replication, which increases cost and complexity, and does not directly solve read throttling in a single region unless reads are distributed across regions, which may introduce latency.