docs: @Override
      public void destroy() {
          if (!isDestroyed.compareAndSet(false, true)) {
              return;
          }
  
          deregisterLifecycleListener();
          for (ICacheInternal cache : caches.values()) {
              cache.destroy();
          }
          caches.clear();
  
          isClosed.set(true);
  
          postDestroy();
      }