@Override
  public void enqueueEvent(EnumListenerEvent operation, EntryEvent<?, ?> event,
      Object substituteValue,
      boolean isLastEventInTransaction) throws CacheException, IOException {
    int bucketId = ((EntryEventImpl) event).getEventId().getBucketID();
    if (bucketId < 0) {
      return;
    }
    int pId = bucketId % nDispatcher;
    processors[pId].enqueueEvent(operation, event, substituteValue, isLastEventInTransaction);
  }
Parallel processor which constitutes of multiple {@link ParallelGatewaySenderEventProcessor}.
Each of the {@link ParallelGatewaySenderEventProcessor} is responsible of dispatching events from
a set of shadowPR or buckets. Once the buckets/shadowPRs are assigned to a processor it should
not change to avoid any event ordering issue.

The {@link ParallelGatewaySenderQueue} should be shared among all the
{@link ParallelGatewaySenderEventProcessor}s.
geode-core/src/main/java/org/apache/geode/internal/cache/wan/parallel/ConcurrentParallelGatewaySenderEventProcessor.java