Atomization.

Pretty much as it sounds. Everything is broken down into it’s smallest unit, be it a block of text, or smallest operation that can be performed. Everything is broken down and defined as an atom of information or operation. In google documents, every keystroke is an atom, hence how they do real time writing for multiple people on the same document.

Once a system is atomized, then all atoms can be recorded. A running record can be maintained in a table of every atomic change and all clients attached can receive that stream of atomized events and exactly duplicate the identical result. If something gets corrupted, then the stream can simply be rewound and re applied. It is also possible to go back in history and fork the stream or copy an earlier atom to the head of the stream if it got deleted etc. There is never collision and nothing is ever truly lost unless deliberately removed from the stream. A delete event is simply another atom that is played.

It works very well. I perfected it at floodles and also used it for the original play nexus boogies, and of course google has been using a version of this for years. At floodles it was proved by 30 people all working on a single floodle at the same time and a very fast pace and it held up and the end result is amazing to see!



 

Tags

  1. atmozaton