Two Dimensional Version Control#
While I was reading the heading of Two Dimensional Version Control | Lobsters, I was reminded of an idea I had a while ago when coding agents first became a thing.
Up until now, time [1] is the one dimension VCS are most concerned with. I believe that we will see a new breed of VCS that add data.
Static software like we build today will become a thing of the past. Software will adapt dynamically and more rapidly than we could imagine today. I could see us handling that with our current tools like git though: mutate code, branch, deploy. We know how to do this.
But if our softwares diverge so heavily, then our data will too. In order to synchronize, we will need to version another dimension: data itself.
I find it funny that everybody wants undo/redo, edit history or even full audit trails, but there is no definitive standard like git for data. I guess that’s because it’s really hard. Just go look for data versioning for relational databases.
Structuring and handling data is hard by itself. Ask any DBA, data engineer or anyone really, who handled a non-trivial SQL schema.
On top of that you have to decide what kind of storage you need: OLTP like Postgres for your typical CRUD app or OLAP like DuckDB (and the 100s of others) for your data warehouse needs? Maybe time series? Maybe document storage? Maybe no DB at all and Parquet on S3?
This would be a good time to present a big call to action button to my solution, but I don’t have one.
If you do, and it’s free software, please let me know!