ASP.NET Core supports absolute and sliding cache expiration, but neither is suitable for data that must remain available long-term and only update when the source data changes.
This repository demonstrates a proactive cache refresh pattern:
Data is cached with absolute expiration as a safety fallback.
A background task (timer-based) periodically refreshes the cache.
The cache is updated independently of request traffic.
This approach keeps the cache warm, avoids unexpected expirations, and ensures consistent, up-to-date data without relying on sliding expiration.