Which solutions will meet these requirements with the LEAST amount of changes to the application?
(Choose two.)
Change the data model of the DynamoDB tables to ensure that all Scan and read operations meet DynamoDB best practices of uniform data access, reaching the full request throughput provisioned for the DynamoDB tables.
Enable DynamoDB Auto Scaling to manage the throughput capacity as table traffic increases. Set the upper and lower limits to control costs and set a target utilization given the peak usage and how quickly the traffic changes.
Provision Amazon ElastiCache for Redis with cluster mode enabled. The cluster should be provisioned with enough shards to spread the application load and provision at least one read replica node for each shard.
Implement the DynamoDB Accelerator (DAX) client and provision a DAX cluster with the appropriate node types to sustain the application load. Tune the item and query cache configuration for an optimal user experience.
Remove error retries and exponential backoffs in the application code to handle throttling errors.
Explanations:
Changing the data model to ensure uniform data access may improve performance, but it requires significant changes to the application and data model. This goes beyond the least amount of change required by the CTO.
Enabling DynamoDB Auto Scaling is a minimal change that dynamically adjusts throughput capacity to handle spikes in traffic, improving performance without modifying the application or data model.
ElastiCache with Redis would add complexity and introduce a caching layer, which requires changes to the application. It’s not the least amount of change, and it may not resolve the underlying issue with DynamoDB’s throughput limitations.
Implementing DynamoDB Accelerator (DAX) provides a fast in-memory cache that works directly with DynamoDB, improving read performance without modifying the data model or application code significantly.
Removing error retries and exponential backoffs would worsen the user experience by leading to more failed requests. It’s better to allow retries to handle the ProvisionedThroughputExceeded exceptions gracefully.