docs: @Override
    public Streamlet<R> split(Map<String, SerializablePredicate<R>> splitFns) {
      // Make sure map and stream ids are not empty
      require(splitFns.size() > 0, "At least one entry is required");
      require(splitFns.keySet().stream().allMatch(stream -> StringUtils.isNotBlank(stream)),
              "Stream Id can not be blank");
  
      SplitStreamlet<R> splitStreamlet = new SplitStreamlet<R>(this, splitFns);
      addChild(splitStreamlet);
      return splitStreamlet;
    }