Resolvers should not be concern with caching values. The caching logic should be extracted from resolvers into a middle layer that sits between facts and resolvers. This new caching layer should implement global caching as well.