code: private void executeLocal(String serviceName, Object event, EventRegistration registration, int orderKey) {
          if (!nodeEngine.isRunning()) {
              return;
          }
  
          Registration reg = (Registration) registration;
          try {
              if (reg.getListener() != null) {
                  eventExecutor.execute(new LocalEventDispatcher(this, serviceName, event, reg.getListener()
                          , orderKey, eventQueueTimeoutMs));
              } else {
                  logger.warning("Something seems wrong! Listener instance is null! -> " + reg);
              }
          } catch (RejectedExecutionException e) {
              rejectedCount.inc();
  
              if (eventExecutor.isLive()) {
                  logFailure("EventQueue overloaded! %s failed to publish to %s:%s",
                          event, reg.getServiceName(), reg.getTopic());
              }
          }
      }
docs: Processes the {@code event} on this node. If the event is not accepted to the executor
  in {@link #eventQueueTimeoutMs}, it will be rejected and not processed. This means that we increase the
  rejected count and log the failure.
  
  @param serviceName  the name of the service responsible for this event
  @param event        the event
  @param registration the listener registration responsible for this event
  @param orderKey     the key defining the thread on which the event is processed. Events with the same key maintain order.
  @see LocalEventDispatcher