This interface smells a little like SRP violation. You have nearly exactly the same methods in here for caching entities, collection and queries. It seems like this interface could be split up into three interfaces `EntityCache`, `CollectionCache` and `QueryCache`. Or maybe there is some better option, at least this interface seems to have too many responsibilities IMO.