diff --git a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/listener/GerritListener.java b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/listener/GerritListener.java
index 3464306..589e538 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/listener/GerritListener.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/listener/GerritListener.java
@@ -1,6 +1,8 @@
 package com.googlesource.gerrit.plugins.chatgpt.listener;
 
+import com.google.gerrit.common.Nullable;
 import com.google.gerrit.entities.Project;
+import com.google.gerrit.server.config.GerritInstanceId;
 import com.google.gerrit.server.events.PatchSetEvent;
 import com.google.gerrit.server.events.Event;
 import com.google.gerrit.server.events.EventListener;
@@ -12,19 +14,31 @@
 import com.googlesource.gerrit.plugins.chatgpt.config.Configuration;
 import lombok.extern.slf4j.Slf4j;
 
+import java.util.Objects;
+
 @Slf4j
 public class GerritListener implements EventListener {
+    private final String myInstanceId;
     private final ConfigCreator configCreator;
     private final EventHandlerExecutor evenHandlerExecutor;
 
     @Inject
-    public GerritListener(ConfigCreator configCreator, EventHandlerExecutor evenHandlerExecutor) {
+    public GerritListener(
+            ConfigCreator configCreator,
+            EventHandlerExecutor evenHandlerExecutor,
+            @GerritInstanceId @Nullable String myInstanceId
+    ) {
         this.configCreator = configCreator;
         this.evenHandlerExecutor = evenHandlerExecutor;
+        this.myInstanceId = myInstanceId;
     }
 
     @Override
     public void onEvent(Event event) {
+        if (!Objects.equals(event.instanceId, myInstanceId)) {
+            log.debug("Ignore event from another instance");
+            return;
+        }
         if (!(event instanceof CommentAddedEvent || event instanceof PatchSetCreatedEvent)) {
             log.debug("The event is not a PatchSetCreatedEvent, it is: {}", event);
             return;
