
Before caching a result, define when it is wrong
Cache keys, stale data and invalidation are part of the result contract, not just performance settings.

Cache keys, stale data and invalidation are part of the result contract, not just performance settings.