Per techniques of this disclosure, clients send opaque blobs of text to a server, rather than full operational transforms. The server uses the revision number received from the client to infer operational transforms by obtaining the shortest edit sequence between the received opaque text and revisions subsequent to the revision number. The techniques are particularly suitable for use in lightweight collaborative editors, such as note-taking software.
An idempotency issue potentially arises when not using full operational transforms in communications between client and server: duplicate requests can sometimes result in duplicate transforms on the server. Therefore, per the disclosed techniques, the server deduplicates commands it generates from those it had generated previously. The inferred OTs are thereby free of idempotency issue.
Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 License.
Glofcheski, Owen, "Lightweight Idempotent Operational Transform Inference in a Collaborative Editor", Technical Disclosure Commons, (October 22, 2018)