4 ms·
I’m unsure why this would be compared with Actual Budget or CRDTs in the README. The issue that CRDTs are solving isn’t simply getting the bytes from one devic
by andrewmunsell 3y ago
I’m unsure why this would be compared with Actual Budget or CRDTs in the README.
The issue that CRDTs are solving isn’t simply getting the bytes from one device to another, it’s ensuring that conflicts are merged in a sane way, which this project doesn’t clearly address. Simply syncing a DB across multiple devices won’t help if your app isn’t designed to handle data conflicts.
- fauigerzigerk 3y ago>The issue that CRDTs are solving isn’t simply getting the bytes from one device to another, it’s ensuring that conflicts are merged in a sane way CRDTs merge data in a predictable way but not necessarily in a consistent or correct way according to the requirements of any particular application. I find CRDTs interesting and they are certainly useful for some types of applications with relatively lax consistency rules. But I don't see how they help with the sort of consistency requirements that finance apps are bound to have.
- robertlagrant 3y agoIsn't the point that you get to choose the merge strategy, and thus it is done according to your requirements?
- fauigerzigerk 3y agoDeveloping each new CRDT including its merge strategies is a fundamental research problem. How likely is it that the right one exists (or that you can combine a few of them) to express some arbitrary, application defined consistency rule or merge strategy? On top of that, any solution would have to agree with all your other requirements, such as your chosen degree of normalisation, your performance requirements, etc.
- nwallin 3y agoFrom my understanding, that was OP's point. This project isn't a research project, this project is a one size fits all coding project that purports to solve problems that you need a research project on a single domain in order to solve. It is not conceivable that this project could solve the problem that a CRDT is meant to solve any more than you can parse HTML with regex. But in the readme is explicitly compares itself with CRDTs and a program that uses CRDTs to solve its problem. The question OP is asking is, why is it comparing itself to CRDTs and Actual Budget? If Mycelite has special sauce, what is that special sauce? If it doesn't have special sauce, do they understand they're attempting to solve a problem which requires special sauce?
- fauigerzigerk 3y agoI read OP as implying that CRDTs solve the problem while they are questioning whether this project does. My response to that is to question whether CRDTs solve the problem in the general case (although they may well be helpful in a specific case).
- andrewmunsell 3y agoYou hit the nail on the head— I don’t mean to imply that CRDTs are perfect or useable for every use case, but they’re a way of handling sync conflicts. It is just unclear to me how this project does so, and if it doesn’t, then why it even references CRDTs in the first place