Event-driven invalidation removes cache entries when the underlying data changes. You get near real-time consistency.
Implementation:
Database change triggers event (CDC or app-level)
Event published to message queue
Cache subscriber invalidates affected keys
You need messaging infrastructure (Kafka, RabbitMQ). The complexity is higher but staleness is minimized. Use this for critical data like user sessions, inventory counts, or financial balances.