a little comment
pipeline can't do stateful transducers :(

If state management begins when the pipeline node is
created, then the state ends up being shared between
graphs. Even if each graph had its own version of the
state, the fact that the state is hidden in the
transducer would prevent us from being able to do
graph snapshots, which would be a big loss. So for
now at least, pipeline applies the transducer to the
reducing function every time it receives a new
message. This makes stateful transducers basically
useless by resetting their state for each message.
Maybe I'll think of a better solution later.