- cross-posted to:
- data_structures@programming.dev
- cross-posted to:
- data_structures@programming.dev
I wrote a post about how our Operational Transfomation (OT) algorithm works at Fiberplane. OT is an algorithm that enables real-time collaboration, and I also built and designed our implementation. So if you have any questions, I’d be happy to answer them!
Generally, I don’t think it really matters how many people are involved for the conflict resolution how many people are editing. There is one person who will reach the server first, and then the other(s) need to apply transformation(s).
But I think in your example the tricky part is when you say “each want to add their item as 3rd in the list because it is a todo list and its place in the list is important”. The algorithm will be able to resolve for each of them that their item will come after the 2nd, and before what was originally the 3rd. But it will not be able to put them all on the 3rd position, of course, so it will sort their items and insert them adjacent to one another. So with 3 people inserting simultaneously into the 3rd position, one will end up in the 4th position and one in the 5th.