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
- For example a single key stroke to avoid locking
📚 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.









Leave a comment