Caching is the process of storing important, frequently accessed data in a low-latency, high-throughput storage container. It improves performance and reduces the consumption of resources like bandwidth and processing power because applications do not need to retrieve data from the original source each time, instead reading data from the higher-speed cache.
Cache storage is limited because it typically relies on expensive main memory or solid-state disk storage, imposing a hard limit on how much application data can be cached. Caching layers typically check with the original source periodically for any changes to the cached data, even if it wasn’t requested by an end user. While the frequent checks improves the perceived responsiveness of the application, they consume excessive bandwidth and impose additional stress on the data infrastructure. Further, augmenting the application stack with caching layers complicates development, deployment, and operations.