anchor.diff:          }
       let messageQueue = ConcurrentQueue<Envelope<'Task> * string>()
   
  -    // CACHES ARE NOT STATIC BUT INSTANCE, otherwise continuations will fight for the same caches entries with different resuls
  -    // TODO!!! Important: we need only one MemoryCache instance per app. Use Redis.Cache and apply some key naming scheme instead of 
  -    // creating an instance per Actor
  -    // cache of local results
  -    let resultsCache = MemoryCache("results")
  -    // cache of result ids that we didn't listen to
  -    let resultsIdCache = MemoryCache("resultIds")
  +    // Global cache reference
  +    let cache = Redis.Cache
   
       static let actors = Dictionary<string, obj>()
   
  
positive.code:                                 // notify local waiter
                                  if localResultListeners.ContainsKey(resultId) then
                                      // save trip to redis to get the result
                                      resultsCache.Add(resultId, outMessage, 
                                          DateTimeOffset.Now.AddMilliseconds(float this.ResultTimeout)) 
                                          |> ignore
                                      // save result and notify others about it even though we are doing job locally 
  
negative.code:     /// Check if a result is likely awailable and return it.
      /// </summary>
      member internal this.TryGetResultIfItDefinitelyExists(resultId : string, [<Out>] result : byref<Message<'TResult>>) : bool = 
          let hasCachedId = cache.Get(resultsKey + ":id:" + resultId) <> null
          //false doesn't mean that result doesn't exist (it doesn't in 99.9..% cases), but true 100% means that we have a result
          // in most cases (depends on Redis's PubSub) this variable is right
          if hasCachedId then 
              let cachedResult = cache.Get(resultsKey + ":" + resultId)
              let result' : Message<'TResult> =
                  if cachedResult <> null then unbox cachedResult
                  else redis.Get<Message<'TResult>>(resultsKey + ":" + resultId)
  