Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

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.



Could 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.


Like a LinkedIn connection, I assume.


Yes, 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/...


Your 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.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: