docs: @Override
      public void processMessage() {
          // since our computations are symmetric - we aggregate dot everywhere
          if (chunks == null) {
              chunks = new TreeMap<>();
              chunksCounter = new AtomicInteger(1);
              addToChunks(payload);
          }
  
          clipboard.pin(this);
  
          //log.info("sI_{} dot aggregation received", transport.getShardIndex());
  
          if (clipboard.isReady(this.getOriginatorId(), this.getTaskId())) {
              trainer.aggregationFinished(clipboard.unpin(this.getOriginatorId(), this.taskId));
          }
      }