diff --git a/lib/event_sourcery/event_store/postgres/optimised_event_poll_waiter.rb b/lib/event_sourcery/event_store/postgres/optimised_event_poll_waiter.rb
index <HASH>..<HASH> 100644
--- a/lib/event_sourcery/event_store/postgres/optimised_event_poll_waiter.rb
+++ b/lib/event_sourcery/event_store/postgres/optimised_event_poll_waiter.rb
@@ -52,7 +52,9 @@ module EventSourcery
                                 loop: loop,
                                 after_listen: after_listen,
                                 timeout: timeout) do |_channel, _pid, _payload|
-            @events_queue.push(:new_event_arrived)
+            if @events_queue.empty?
+              @events_queue.push(:new_event_arrived)
+            end
           end
         end
       end
Only add to the queue if it's empty to prevent unnecessary growth of the queue