(caveat: I am involved in many things)
1. You can implement some minor flavor of Doop in differential dataflow (https://github.com/TimelyDataflow/differential-dataflow/tree...). The fragment came from Yannis which he described as a minimal non-trivial analysis (vs other, even smaller fragments), but it still uses some 900 dataflow operators (updates in 10s of ms when inputs change, though). The DD impl isn't meant to be understood, I'm afraid.
2. Many ex-LB folks are now at relational.ai doing .. advanced weird tech like they did with LB. I'd watch them (I do).
3. Polonius (https://github.com/rust-lang/polonius) defines the Rust borrow checker as Datalog rules, and went from differential dataflow to datafrog (https://github.com/rust-lang/datafrog).
4. If you want to check out other incremental Datalog environments, in addition to IncA, there are
https://github.com/comnik/declarative-dataflow
https://github.com/ryzhyk/differential-datalog
https://github.com/TimelyDataflow/differential-dataflow
Good times for Datalog, imo.