Juji, an AI-driven conversational technologies company, has made an open-source
contribution to the world with
Datalevin, a versatile, lightweight, and
fast embedded database engine. In addition to being powered by the Datalog query
language, it also acts as a Clojure native Key-Value (KV) store. This transactional database solution is agile and dynamic, suitable for handling complex data structures.
In my Clojure/north 2020 talk on "diffing-based software architecture patterns", I mentioned that Juji is using Editscript, a library I developed, to diff Clojure data structures. During the Q&A session of the talk, someone brought up another Clojure diff library, called deep-diff2, which I was unaware of. Then on Youtube, a comment asking the difference between Editscript and deep-diff2 appeared again. This prompted me to do an investigation on Clojure data diff libraries. Given how the Clojure community places such an emphasis on data oriented programming, a comparison of data diff alternatives appears to be of interest.