In-memory cache sits between your application and the database
Two different caching strategies: Lazy Loading and Write-Through
Lazy Loading
Lazy Loading only cache the data when requested
Elasticache Node failures not fatal, just lots of cache missing
Cache miss penalty: Initial request, query database, writing to cache
Avoid state data by implementing a TTL
Write-Through
Write-Through strategy writes data into the cache whenever there is a change to the database
Data is never stale
Write penalty: Each write involves a write to the cache
Elasticache node failure means that data is missing until added or updated in the database
Wasted resources if most of the data is never used
DAX is optimized only for use with DynamoDB. It Only supports the write-through strategy (i.e. no Lazy Loading). If you need DynamoDB and Lazy Loading, using Elasticache; else, use DAX.