  Optimizing a stateful dataflow language is a challenging task. There are
strict correctness constraints for preserving properties expected by downstream
consumers, a large space of possible optimizations, and complex analyses that
must reason about the behavior of the program over time. Classic compiler
techniques with specialized optimization passes yield unpredictable performance
and have complex correctness proofs. But with e-graphs, we can dramatically
simplify the process of building a correct optimizer while yielding more
consistent results! In this short paper, we discuss our early work using
e-graphs to develop an optimizer for a the Hydroflow dataflow language. Our
prototype demonstrates that composing simple, easy-to-prove rewrite rules is
sufficient to match techniques in hand-optimized systems.
