diff --git a/src/main/java/com/googlesource/gerrit/plugins/gerritcachedrefdb/LibDbModule.java b/src/main/java/com/googlesource/gerrit/plugins/gerritcachedrefdb/LibDbModule.java
index 5787abe..3c857cf 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/gerritcachedrefdb/LibDbModule.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/gerritcachedrefdb/LibDbModule.java
@@ -14,6 +14,8 @@
 
 package com.googlesource.gerrit.plugins.gerritcachedrefdb;
 
+import static com.google.inject.Scopes.SINGLETON;
+
 import com.google.common.flogger.FluentLogger;
 import com.google.gerrit.extensions.config.FactoryModule;
 import com.google.gerrit.extensions.registration.DynamicItem;
@@ -25,6 +27,7 @@
   @Override
   protected void configure() {
     DynamicItem.itemOf(binder(), RefByNameCache.class);
+    DynamicItem.bind(binder(), RefByNameCache.class).to(NoOpRefByNameCache.class).in(SINGLETON);
 
     factory(RefUpdateWithCacheUpdate.Factory.class);
     factory(RefRenameWithCacheUpdate.Factory.class);
diff --git a/src/main/java/com/googlesource/gerrit/plugins/gerritcachedrefdb/LibSysModule.java b/src/main/java/com/googlesource/gerrit/plugins/gerritcachedrefdb/LibSysModule.java
index e6dab8f..7e93baf 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/gerritcachedrefdb/LibSysModule.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/gerritcachedrefdb/LibSysModule.java
@@ -14,19 +14,49 @@
 
 package com.googlesource.gerrit.plugins.gerritcachedrefdb;
 
-import static com.google.inject.Scopes.SINGLETON;
-
 import com.google.common.flogger.FluentLogger;
+import com.google.gerrit.extensions.events.LifecycleListener;
 import com.google.gerrit.extensions.registration.DynamicItem;
-import com.google.inject.AbstractModule;
+import com.google.gerrit.extensions.registration.RegistrationHandle;
+import com.google.gerrit.lifecycle.LifecycleModule;
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
 
-public class LibSysModule extends AbstractModule {
+public class LibSysModule extends LifecycleModule {
   private static final FluentLogger logger = FluentLogger.forEnclosingClass();
 
   @Override
   protected void configure() {
     install(RefByNameGerritCache.module());
-    DynamicItem.bind(binder(), RefByNameCache.class).to(RefByNameGerritCache.class).in(SINGLETON);
+    listener().to(RefByNameGerritCacheSetter.class);
     logger.atInfo().log("Sys library loaded");
   }
+
+  @Singleton
+  private static class RefByNameGerritCacheSetter implements LifecycleListener {
+    private final RefByNameGerritCache refByNameGerritCache;
+    private final DynamicItem<RefByNameCache> cacheRef;
+    private RegistrationHandle handle;
+
+    @Inject
+    RefByNameGerritCacheSetter(
+        RefByNameGerritCache refByNameGerritCache, DynamicItem<RefByNameCache> cacheRef) {
+      this.refByNameGerritCache = refByNameGerritCache;
+      this.cacheRef = cacheRef;
+    }
+
+    @Override
+    public void start() {
+      handle = cacheRef.set(refByNameGerritCache, "gerrit");
+      logger.atInfo().log("Gerrit-cache-backed RefDB loaded");
+    }
+
+    @Override
+    public void stop() {
+      if (handle != null) {
+        handle.remove();
+        logger.atInfo().log("Gerrit-cache-backed RefDB unloaded");
+      }
+    }
+  }
 }
