Cache invalidation is challenging when caching collections of data rather than single values. There are three scenarios to consider: 1) Invalidating a single item using its primary key is straightforward. 2) When a non-key value changes, no cache entries need to be invalidated. 3) When a key value changes, any cache entries using that key must be invalidated. The document proposes solutions like tracking primary keys, propagating changes through events, and invalidating affected cache entries.