I'm intrigued by GeoGig, not sure whether it's something I'll be able to contribute to, but hoping to find some like-minded souls. I've been in the GIS business for over 30 years, most recently dealing with the utilities market and coding in C# (it's been 15 years since I used Java).
One of my most interesting projects was a cadastral mapping application that constructs map content by entering survey measurements from a bunch of hardcopy plans. It uses an append-only event source (a set of immutable flat files) to record the edits used to create the map. Everything is relative to a set of control points that provide some initial absolute positions. But instead of storing the derived positions, it just stores the input measurements. What that
means is that it has to re-calculate the geometry each time it opens the map.
That may seem a bit pointless, but it does simplify things in situations where the source data could change. For example, if my original control has moved, I can just append that change to my editing timeline and that's me done (I don't need to modify any positions because all derived positions are transient).
It occurred to me that this approach applies to any application that involves relative positioning. And the append-only structure makes it quite easy to handle branching.
I don't think GeoGig as it currently stands would be able to work with spatial data in this sort of way. I'm just wondering whether it's something that could be bolted on, or would that be better tackled as something brand new.