code: @Override
    public QueueDeliver<M> build(Supplier<Deliver<M>> factory, 
                                 int workerCount)
    {
      Objects.requireNonNull(factory);
      validateBuilder();
      
      if (workerCount <= 0) {
        throw new IllegalArgumentException();
      }
      
      if (workerCount == 1) {
        return build(factory.get());
      }
  
      QueueRing<M> queueDeliver = buildQueue();
      
      //Objects.requireNonNull(processors);
        
      @SuppressWarnings("unchecked")
      WorkerDeliver<M>[] workers = new WorkerDeliver[workerCount];
        
      Executor executor = createExecutor();
      ClassLoader loader = getClassLoader();
        
      for (int i = 0; i < workers.length; i++) {
        Deliver<M> deliver = factory.get();
        
        workers[i] = new WorkerDeliverMultiThread<M>(deliver,
                                                     _outboxContext,
                                                     executor, loader, 
                                                     queueDeliver);
      }
        
      WorkerDeliver<M> worker
        = new WorkerDeliverMultiCoordinator<>(queueDeliver, 
                                            workers,
                                            multiworkerOffset());
      
      return new QueueDeliverImpl<M>(queueDeliver, worker);
    }
docs: /*
  public QueueService<M> build(DeliverOutbox<M> ...processors)
  {
  return buildMultiworker(processors);
  }