Dida, which is based on differential dataflow, enables developers to incrementally update structured computations (e.g. map, reduce, join) on multisets (i.e. an unordered collection of elements, like a SQL table). Dida, which has node.js bindings, is similar to Materialize, ksqlDB, Flink and other stream processing systems that can replace batch jobs and/or support the development of streaming data applications. However, it is designed to be easier to use and understand, including by leveraging simpler progress tracking algorithms.