@Override
 public void registerDownstream(
     String name, AcDataListener<AcCommonDataWithPayLoad> downstream, AcDispatchInfo info) {
   if (info.getThreadCount() < 1) {
     throw new IllegalArgumentException("invalid thread count: " + info.getThreadCount());
   }
   internalDataBus.registerDownstream(
       name, downstream, info.getQueueSize(), info.getMaxBufferSize(), info.getThreadCount());
 }
 @Override
 public void closeDispatch() {
   internalDataBus.onDataFinished();
 }
 @Override
 public void dispatch(AcCommonDataWithPayLoad... data) {
   internalDataBus.onData(data);
 }