diff --git a/src/main/java/com/googlesource/gerrit/plugins/replication/pull/event/EventsBrokerMessageConsumer.java b/src/main/java/com/googlesource/gerrit/plugins/replication/pull/event/EventsBrokerMessageConsumer.java
index 13b038e..a21a48c 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/replication/pull/event/EventsBrokerMessageConsumer.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/replication/pull/event/EventsBrokerMessageConsumer.java
@@ -34,7 +34,7 @@
 public class EventsBrokerMessageConsumer implements Consumer<Event>, LifecycleListener {
 
   private static final FluentLogger logger = FluentLogger.forEnclosingClass();
-  private final DynamicItem<BrokerApi> eventsBroker;
+  private final DynamicItem<BrokerApi> eventsBrokerDi;
   private final StreamEventListener eventListener;
   private final ShutdownState shutdownState;
   private final String eventsTopicName;
@@ -48,7 +48,7 @@
       @Named(STREAM_EVENTS_TOPIC_NAME) String eventsTopicName,
       @Nullable @Named(STREAM_EVENTS_GROUP_ID) String groupId) {
 
-    this.eventsBroker = eventsBroker;
+    this.eventsBrokerDi = eventsBroker;
     this.eventListener = eventListener;
     this.shutdownState = shutdownState;
     this.eventsTopicName = eventsTopicName;
@@ -67,18 +67,18 @@
 
   @Override
   public void start() {
-    BrokerApi brokerApi = eventsBroker.get();
+    BrokerApi brokerApi = eventsBrokerDi.get();
     if (groupId == null) {
       brokerApi.receiveAsync(eventsTopicName, this);
       return;
     }
 
-    if (!(eventsBroker instanceof ExtendedBrokerApi)) {
+    if (!(brokerApi instanceof ExtendedBrokerApi)) {
       throw new IllegalArgumentException(
           String.format(
               "Failed to load the pull-replication plugin: %s does not support the custom group-id '%s'.\n"
                   + "Remove replication.eventBrokerGroupId from replication.config or install a different event-broker plugin.",
-              eventsBroker.getClass(), groupId));
+              brokerApi.getClass(), groupId));
     }
 
     ((ExtendedBrokerApi) brokerApi).receiveAsync(eventsTopicName, groupId, this);
@@ -87,6 +87,6 @@
   @Override
   public void stop() {
     shutdownState.setIsShuttingDown(true);
-    eventsBroker.get().disconnect();
+    eventsBrokerDi.get().disconnect();
   }
 }
