Why increase `maxBatchSize` and handle corner cases like `Int.MaxValue / 2` ? Isnt it rather more intuitive to run the loop till while `events.size() < maxBatchSize`?