time

awakeEvery (with chunks)

Stream.awakeEvery[IO](5.seconds).map(_.toSeconds).take(2).compile.toList

diagram

delayBy (with chunks)

Stream('a', 'b', 'c').chunkLimit(1).unchunks.delayBy(5.seconds).compile.toList

diagram

metered (with chunks)

Stream('a', 'b', 'c').chunkLimit(1).unchunks.metered(5.seconds).compile.toList

diagram

debounce (with chunks)

Stream('a', 'b', 'c').chunkLimit(1).unchunks.debounce(5.seconds).compile.toList

diagram

debounce awake (with chunks)

Stream
  .awakeEvery[IO](1.seconds)
  .map(_.toSeconds)
  .debounce(2.seconds)
  .take(2)
  .compile
  .toList

diagram