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 the API Gateway can help manage traffic, but it does not directly address the underlying availability issues with DynamoDB. It might limit the rate at which requests are processed, but it does not provide a solution for buffering requests during high load or failures.
Using DynamoDB Accelerator (DAX) can improve read performance, but it does not address write availability or throughput limits. DAX is primarily a caching solution for read-heavy workloads and does not buffer writes to DynamoDB, which is needed in this scenario.
Creating a secondary index in DynamoDB can improve query performance for specific use cases, but it does not solve the availability issues related to write capacity. Secondary indexes can add additional throughput requirements and might exacerbate the current issue rather than alleviate it.
Using Amazon SQS with Lambda to buffer writes to DynamoDB provides a robust solution for managing bursts of requests. SQS allows requests to be queued during high load, preventing loss of user requests. Lambda can process these queued requests asynchronously, ensuring that DynamoDB is not overwhelmed and reducing the chance of availability issues.