Very thorough answer but I am think there are a lot of scenarios where you don't need every aspect of this solution. I think unique ids and message ordering can handle many cases although not the scenario in the answer. Not sure if someone mentioned but operational transforms might also apply.