Use PostgreSQL as Versioning/Storage-Engine
Using git with pretty-printed edn files has many flaws. It might make sense to use a tailored edn-first versioning approach.
- Store Data in PostgreSQL
- Store changes in the style of video compression:
- Keyframes: Complete Document
- B-Frame/P-Frame: Storing only a diff in relation to a previous or following keyframe document
Deserializing/Serializing
Pretty printed edn was a good solution for git line-based diff. When using edn specific diff we no longer need pretty printed edn serialization. Therefore we can use faster formats, as long as they dont change the data.
Two possible options might be:
EDN Diff
There are multiple options for diffing/patching. Editscript is an option and has A* and Quick Algorithms.