Readers may have noticed that I departed from the radicle project a while ago. I have since started to explore a different approach. This is it:
    https://git.eagain.io/it
Since starting to work on radicle-link
(now abandoned), I wanted to arrive at something which would be usable under today’s network and economic realities.
In this world, peer-to-peer protocols have their niches, but generally fall short of traditional client-server architectures by virtually every measure of quality of service (QoS). Recent federated protocols have performed much better, although it remains to be seen if they can avoid standards proliferation. Neither approach has been able to answer conclusively how less popular data is kept available, which is quite a non-starter. It’s not very convincing to incur a premium, either as fee or as resource expenditure, when storage and bandwidth are commodities.
So no, I do not believe that there is any meaningful way to replace “The Cloud” with “The Network” - and yet, I want my FOSS project to be able to roam wherever my QoS needs are best met at any point in time. Didn’t we intend to embrace local-first software in the first place? Then how did we end up trying to design bespoke network protocols to move our data around?
In hindsight, I think we were too preoccupied with how Github does things to understand exactly how this model only works when every “fork” is in the same failure domain. We dismissed the idea of “patches” too early – ignoring that distributed version control has for decades been predicated on it – because either they were these brittle agglomerations of gibberish in a text file or sophisticated theory which, obviously, git could not be retrofitted with.
It turns out that, if we tilt our heads slightly sideways, we can make the git DAG suffice and reduce our “protocol” to a bunch of datatypes and essentially transfer of static files. I’ll take it as a compliment if you find this boring.
Disclaimer: I developed it on my own time, so don’t expect a “product” you can use, yet
Thanks @alexgood for reminding me that git always has another thing up its sleeves you either didn’t know before, or held it the wrong way.
Thanks