WOOT: an algorithm for concurrency and collaborative authoring!
Channel: Julien Genestoux
Date: 2013-05-27

Concurrency is hard. Collaborative authoring and editing, doubly so. Or so I found out when I started working on my new Mac app.

As iCloud and Simperium were not flexible enough for my needs, I started researching algorithms to roll my own solution for collaborative editing. I immediately came across Operational Transformations. OT is widely used in concurrent systems like Apache Wave, etc. The only problem is that—pardon my French—they're a mindfuck to understand and become increasingly difficult to implement if you want to support features like unlimited local undo and redo. That's when I stumbled on Without Operational Transformations (WOOT).

WOOT is a much simpler algorithm that also allows you to easily implement local undo and redo. I implemented it in Objective-C for my app. And I'd like to talk about the subject in general with examples from my experience in understanding and implementing WOOT.