I am researching collaborative editing systems for some work, but so far my search is turning up blank.

Collaborative real-time editing systems almost all have features like:

  • Many users can edit the document at the same time
  • All changes are dated and saved in a linear revision history
  • Edits are visible in semi-real time
  • Who-wrote-what is tracked for all content

I cannot think of a data- and procedure model to encompass all of these without huge inefficiencies, for example:

  • Take user input as a few typestrokes at a time, thus enabling real-time visibility but with horrible server loads.
  • Take user input as element changes, thus disabling real-time visibility and complicating many-user-editing of one paragraph.
  • Edit a XML Document Model Object in place responding to inputs, but making it difficult to version/revision track.
  • Edit linear text stored in an appropriate editing structure responding to inputs, making it difficult to verify that correct markup is being generated.
  • Store revision history accumulating, requiring computational resources but easing on space.
  • Store revision history whole, requiring space but easing on computation.

Am I off track? Does there exist good solutions to these problems? What, if any, is the relevant litterature?

  • 1
    $\begingroup$ Are you interested in developing such a system, or do you ask if a system that provides this functionality is known? $\endgroup$
    – A.Schulz
    Jan 15, 2013 at 13:59
  • 1
    $\begingroup$ Have you looked into existing collarborative editors? $\endgroup$
    – Raphael
    Jan 15, 2013 at 14:13
  • $\begingroup$ @A.Schulz I am interested in ultimately developing such a system tailored to a specific purpose, but right now is Research only. $\endgroup$ Jan 16, 2013 at 10:33
  • $\begingroup$ @Raphael I am investigating Etherpad, but if I am not mistaken, there isn't a lot of open-source systems of this kind. $\endgroup$ Jan 16, 2013 at 10:34
  • 1
    $\begingroup$ I have used Gobby myself, which is open source. There seem to be about handful of open-source collaborative editors, including Etherpad. $\endgroup$
    – Raphael
    Jan 16, 2013 at 11:18

1 Answer 1


The usual approach is operational transformation. The wikipedia page seems to be pretty good. Here are some other references:

Here's a paper on a different approach: Real time group editors without operational transformation. (Note: I haven't actually read it, so can't speak to how good it is)

  • $\begingroup$ Thank you so much! This was the magical keyword I lacked. $\endgroup$ Jan 21, 2013 at 9:02

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.