How do we handle Collaborative Editing?

What do we mean by collaboration editing?

Real-time collaborative editing apps

  • Allows for several people to edit simultaneously
  • Example of this?
    • Google Docs
    • Etherpad
  • Allows for multiple users to edit docs, spreadsheets etc.

How do we resolve collaborative editing?

Strangely enough collaborative editing has a lot in common with the replication problem in an offline editing use case.

⚙️ Collaboration model equivalent to single leader replicaton with transaction on the leader:

  • ✅ When a single user edits a document the changes are instantly applied and then written to there local replica (the state of the doc or client app)
  • ✅ After, this is asynchronously replicated to the server and any other users editing the same document
  • ⚠️ If you want it to be guaranteed, there needs to be no editing conflicts
    • 🔒 The application must obtain a lock before a user can edit
    • ⛔️ If another user wants to edit the same doc, they will first have to wait, until the first user has submitted there changes and the lock has released

🤔 Alternatively, you may want faster collaboration! 🏃💨

  • This can be achieved making smaller units of change
    • For example a single key stroke to avoid locking
      • This approach allows users to edit simultaneously
      • But is also brings all the challenges of multi-leader replication… including conflict resolution

📚 Further Reading & Related Topics

If you’re exploring collaborative editing in distributed data-intensive systems, these related articles will provide deeper insights:

• Distributed Data-Intensive Systems: What Is a Conflict? – Learn how conflicts arise in collaborative editing environments and how distributed systems handle concurrent data changes.

• Distributed Data-Intensive Systems: Limitations of Quorum Consistency – Explore how quorum-based approaches in collaborative editing systems impact consistency and availability.

3 responses to “How do we handle Collaborative Editing?”

  1. What is Replication? – Scalable Human Avatar

    […] How do we handle Collaborative Editing? […]

    Like

  2. What is Replication and Why is it Important? – Scalable Human Avatar

    […] How do we handle Collaborative Editing? […]

    Like

Leave a reply to Distributed Data Intensive Systems: What is a conflict? – Scalable Human Cancel reply

I’m Sean

Welcome to the Scalable Human blog. Just a software engineer writing about algo trading, AI, and books. I learn in public, use AI tools extensively, and share what works. Educational purposes only – not financial advice.

Let’s connect