What should a solutions architect do to address this issue without impacting existing users?
Add throttling on the API Gateway with server-side throttling limits.
Use DynamoDB Accelerator (DAX) and Lambda to buffer writes to DynamoDB.
Create a secondary index in DynamoDB for the table with the user requests.
Use the Amazon Simple Queue Service (Amazon SQS) queue and Lambda to buffer writes to DynamoDB.
Explanations:
Adding throttling on API Gateway can help manage the request rate but does not address the underlying issue of DynamoDB throughput. It may lead to increased latency and doesn’t solve the problem of lost requests due to DynamoDB availability issues.
DynamoDB Accelerator (DAX) improves read performance but does not help with write throughput, which is the primary issue here. Additionally, it doesn’t provide a way to buffer writes that may exceed DynamoDB limits.
Creating a secondary index in DynamoDB can optimize query performance but does not solve the availability or throughput issues for writes. It may even increase write costs, further impacting the budget constraints.
Using Amazon SQS to buffer writes allows the Lambda function to decouple request ingestion from database writes. This means requests can be queued even when DynamoDB is under high load, preventing loss of requests and improving availability without impacting existing users.