SA certainly wasn't the first to build a desalination plant, and it appears to have been working as designed for quite a while now ("Water production to date (to end of June 2017) = approximately 138 billion litres" [1]).
I think the infamy was unearned, and mainly due to people not understanding that it was never intended to run all the time, but is insurance for a time of crisis (which we will certainly have again at some point).
In the short term, no. I’d like to think that the (somewhat unplanned) overhead of developing Basis will be paid off in future as a commercial advantage for my apps — I guess we’ll see whether that pans out ;)
In the longer term, yes absolutely I’d like to make it open source. In the meantime, I’m happy to share some of the lessons I’ve learnt along the way.
OT is not so much an algorithm as an approach: a way of thinking about sensibly merging parallel sequences of change operations against a data model of some kind.
In fact, Basis does use an OT approach in the delta merge algorithm: it breaks the deltas down into a canonical series of “micro operations”, merges them piecewise, then generates a new delta.
I'd be really interested to hear more about your approach. Maybe you’d write it up?
I did consider simply storing and replaying actions, but realised I'd still want a way to merge them: consider a series of actions like: "add item", "update item", "add item", ...<lots more changes>..., "delete items 1 through 20". If there’s no merge, a lot of redundant actions will end up building up in the offline case.
I think the infamy was unearned, and mainly due to people not understanding that it was never intended to run all the time, but is insurance for a time of crisis (which we will certainly have again at some point).
So, not a good example.
[1] https://www.sawater.com.au/community-and-environment/our-wat...