recovery: replaced manual caching with backported lru_cache