We use two CachingEntityRevisionLookup nested into each other: the outer-most
uses a HashBagOStuff to implement in-process caching, the second level uses
memcached.
It is odd to have two different decorator instances for caching around th EntityRevisionLookup. I suggest to have only a single decorator for caching, which writes to a caching interface. Then this caching interface can have an implementation what uses multiple caches, and perhaps have a decorator on that level.