Add caching that speeds up a system without serving stale or wrong data, choosing what to cache, where, how it expires, and how it's invalidated. Use when introducing or reviewing a cache, debugging stale data, or deciding whether caching is the right fix for a performance problem.