|
|
|
|
|
by narush
1546 days ago
|
|
Super cool. Martin Kleppmann, the lead author on this paper, is the author of Designing Data-Intensive Applications, which I haven't read but have heard pretty awesome things about. What I have done: watched his other talks about CRDTs (conflict-free replicated data types). I'd recommend watching this video [1] for an overview of what CRDTs are, why he cares about them, and open problems (one of which he solves in this paper!). A (potentially inaccurate) TLDR: local-first collaboration software presents is a compelling alternative to the current way collaboration is implemented in a client-server model. Specifically: if we build tooling that makes it easy to build collaborative experiences into your app without a server, then we'll potentially be able to achieve the goals of 'decentralization' (or, fuck the middleman or whatever you wanna call it) in some real sense. Note that I'm not talking about crypto coins here! Very cool, very exciting! [1] https://www.youtube.com/watch?v=Qytg0Ibet2E |
|
The tradeoff: you need to store all the operations you've ever seen, as you need to be able to detect conflicts between old ones.
Question for the authors (if they are around): any ideas for how we might get to efficient pruning of old operations?
My first thought was that you could have some notion of epoch, and once you move beyond that epoch, you accept no new operations from it. But then you realize that this requires nodes to agree on moving between epochs, which seems like it might require some fancy consensus protocol / a known set of nodes / mad complexity.
I don't have any ideas. Do you all have some idea of how we might be able to prune this old log? Or even sketches of ideas?