4 ms·
An interesting problem is how much interface mismatch you get when you try to solve real-life problems using CRDTs. Awhile back I implemented the "become a con
by sbazerque 7y ago
An interesting problem is how much interface mismatch you get when you try to solve real-life problems using CRDTs.
Awhile back I implemented the "become a connection" logic for a project that has purely CRDTs datatypes, and I kind of went back and forth between composing well known CRDTs to model all the possible state, or just implementing the solution as a finite state machine whose CRDT-ability had to be reasoned for this particular purpose. Ending doing the second.
Got the intuition that this is a very nice way to think about distributed software but the right abstractions may not be in place just yet.
- zzzcpan 7y agoCould you elaborate on "become a connection" logic? What kind of problem is that? You may need to change user interface a bit to fit into CRDTs.
- dboreham 7y agoLike a LinkedIn connection, I assume.
- sbazerque 7y agoYes, it was for a chat proof-of-concept app. But the end result ended up being so convoluted I thought no sane person would program like that, so I went back to the drawing board. Look at _init() here to get a feel of it: https://github.com/hyperhyperspace/hyperhyperspace-web/blob/master/src/services/people/contacts.js https://github.com/hyperhyperspace/hyperhyperspace-web/blob/...
- dboreham 7y agoYour code didn't look so bad to me :) I think you may have met some of my colleagues working on similar problems at Dweb camp recently.