- Added the `fold_window` operator, works like `reduce_window` but allows
the user to build the initial accumulator for each key in a `builder` function.
- Output is no longer specified using an `output_builder` for the
entire dataflow, but you supply an "output config" per capture. See
`bytewax.outputs` for more info.
- Input is no longer specified on the execution entry point (like
`run_main`), it is instead using the `Dataflow.input` operator.
- Epochs are no longer user-facing as part of the input system. Any
custom Python-based input components you write just need to be
iterators and emit items. Recovery snapshots and backups now happen
periodically, defaulting to every 10 seconds.
- Recovery format has been changed for all recovery stores. You cannot
resume from recovery data written with an older version.
- The `reduce_epoch` operator has been replaced with
`reduce_window`. It takes a "clock" and a "windower" to define the
kind of aggregation you want to do.
- `run` and `run_cluster` have been removed and the remaining
execution entry points moved into `bytewax.execution`. You can now
get similar prototyping functionality with
`bytewax.execution.run_main` and `bytewax.execution.spawn_cluster`
using `Testing{Input,Output}Config`s.
- `Dataflow` has been moved into `bytewax.dataflow.Dataflow`.