|
|
|
|
|
by threatofrain
1175 days ago
|
|
> but for op-based CRDTs if you fail to deliver a message it's not fine, the information in that message is lost forever, it won't be included in the next message, and (even if the partition is eventually healed) the ultimate state will not converge Can't you just have every node keep a history of ops, and when nodes communicate with each other they can compare clocks to know which ops to re-deliver? We should also be able to enforce idempotency this way. |
|
basically this makes peer connections stateful, but maintaining that state accurately is very difficult, especially when considering tomography changes in the system
in fact if you can manage that state correctly, you've solved a problem that's roughly the same as the problem that CRDTs solve
(in other words, you're almost certainly not gonna solve that problem correctly)