ক্যাটাগরি
Time-based cache expiry is a guess. Tag-based invalidation tied to model observers is not — the cache clears exactly when the underlying data actually changes.