Concurrent editing of the same region requires a merge strategy
Aliases: concurrency model · optimistic versus pessimistic concurrency · merge model
What it is
The moment a system lets more than one person edit the same document, it must answer one question: when two people modify the same region, whose change survives? The structural answer is concurrency control, realized in a product as its merge strategy. This is not an optional enhancement to collaborative editing — it is the foundation. Without it, "collaborative" editing either delegates the problem back to people (take turns, please) or silently discards one party's changes when two saves collide. Who may write, to what granularity, and at what moment, are all decided by the concurrency model.
Why it happens
Concurrency originates in replication plus latency: each editor's client holds a local copy of the state, and a modification takes time to propagate. If two people edit the same region inside that window, two equally legitimate but mutually unaware histories come into existence. The merge strategy decides how the system reconciles the forked histories into one result, along two broad routes. Pessimistic strategies prevent conflicts before they happen — acquire a lock on the region before editing, wait if you cannot get it. Optimistic strategies let everyone edit freely and reconcile afterwards with an algorithm that fuses concurrent operations into a consistent result (operational transformation and conflict-free replicated data types both live here). The choice sets the ceiling on parallelism and determines whether users experience conflict as being blocked or as being silently merged.
Studying it
- Paradigm: telemetry from deployed collaborative editors — logging how often the same region is concurrently modified, and how conflict rates scale with group size, document length, and task type; controlled experiments — pairs or small groups co-author a document while the merge strategy is manipulated (locking vs. automatic merging vs. detect-and-notify manual merge), measuring task duration, added communication, lost edits, and subjective load.
- Variables: concurrency model, conflict-region granularity, group size as independents; conflict rate, waiting time, edit loss, and acceptability of merged output as dependents.
- Use in interface research: judging whether a system's concurrency model matches the conflict density of its task — the empirical basis for choosing locks over algorithms or vice versa.
- Methodological caveat: lab tasks that seat two participants on one short paragraph artificially inflate conflict density. In real document collaboration, same-region concurrency is rare and heavily concentrated in a few places (the opening, headings, the paragraph someone just mentioned). The two settings do not extrapolate to each other; evaluate against the target context's actual conflict distribution.
Where it stops holding
A merge strategy presupposes that multiple people can write to the same object. Read-only sharing, single-author editing with commenting, and strictly sequential handoff workflows never trigger concurrency, and importing heavy merge machinery for them is pure cost. Conflict frequency also varies violently with task shape: asynchronous relay writing barely triggers it, while live co-writing of meeting notes or whiteboard brainstorming triggers it constantly. Note also that algorithmic "convergence" guarantees the replicas end up identical — it does not guarantee the fused text reads well. Semantic correctness has no formal guarantee; a human still has to judge.
Applying it
- Treat the concurrency model as the first design decision when building shared documents, whiteboards, or code collaboration — not a patch applied after launch.
- Select by conflict density: low-conflict asynchronous work is well served by "detect concurrency, notify, let a human merge"; only high-conflict live co-creation justifies operational transformation or CRDTs.
- Make the granularity of "the same region" (character, paragraph, object, line) an explicit product decision — it determines how often users perceive a conflict at all.
- Ensure any automatic merge can explain to users what was merged and whose changes moved.
- Verification: run two real groups through a high-conflict task (co-writing minutes) and a low-conflict task (separate chapters), counting concurrency events and how many users notice. If users routinely discover after the fact that their edits were touched, the strategy is either invisible or the granularity is wrong.
Related
- Same group: V3.01.2 Character-level merging and block-level locking each carry their own cost · V3.01.3 Merge outcomes must be visible to users
- Nearby: V3.02 Presenting and Preserving Conflicts · V3.03 Version History · V3.06 Permissions and Sharing Scope
- Search terms:
concurrency control·operational transformation·CRDT·optimistic versus pessimistic concurrency