code: private void fixBacklog() throws IOException {
              try {
                  writers.values().parallelStream()
                          .forEach(groupWriter -> {
                              try {
                                  groupWriter.fixBacklog(timestamps.size());
                              } catch (IOException ex) {
                                  throw new RuntimeIOException(ex);
                              }
                          });
              } catch (RuntimeIOException ex) {
                  throw ex.getEx();
              }
          }
docs: Pad all groups with empty maps, to ensure it's the same size as
  timestamps list.
  
  We want to keep all the Group instances to have the same number of
  maps as the timestamps list, so we can zip the two together.