Adaptive batching
Thanks to Schedule, we can construct a sophisticated batch
schedule:
val schedule: Schedule[Clock, List[Record], Unit] =
Start off with 30 second timeouts as long as
batch size is < 1000
ZSchedule.f xed(30.seconds).whileInput(_.size < 1000)
andThen and then, switch to a shorter, jittered schedule
ZSchedule.f xed(5.seconds).jittered
for as long as batches remain over 1000
.whileInput(_.size 1000)
Itamar Ravid - @iravid_ 33