Collaboration in Confluence got a massive boost in version 6.0 when Atlassian added support for collaborative editing – up to 12 users can edit one Confluence page, all at the same time. By taking advantage of the Synchrony feature, they could see each other’s changes in real time, and everyone’s changes were merged when the page was published.

Updating and merging concurrent changes in diagrams is not as easy as with text. As any code or documentation merge-monkey in a large team knows, text can be difficult enough!

Many tools which support concurrent editing do Last-Write-Wins, where the most recent timestamp is used to resolve conflicts

But last-write-wins isn’t good enough! 

Let’s say two people are working on an organization chart at the same time. When they opened the file, they could both see the departments, and now want to add the staff in those departments.

  1. X adds all of the staff members in all of the departments – it’s beautifully detailed. Then they save the diagram.
  2. Y got distracted by a coworker asking a question, and left the editor open. They come back to this task after a while, add just the department manager names, then they save the diagram.

In this instance, following the last-write-wins approach, Y’s organization chart ‘wins’ and the detailed information added by X is lost.

draw.io for Confluence Server merges changes

draw.io has found a very elegant and easy way for users to merge concurrent edits before saving in Confluence Server. This eliminates the probability that changes will overwrite each other.

So, how can you concurrently edit draw.io diagrams in Confluence server?

In the example below, I and a co-worker had the diagram open at the same time. I couldn’t see that they were editing it though!

I added new leaf nodes under the Content node, and then saved the diagram.

When I went to save the diagram and exit, I saw their changes appear. We had worked on different parts of the diagram, they added a leaf node under PR.

Tip: If you know someone is working on the diagram at the same time, and you want to see their changes without saving, click File -> Synchronize.

Neither of our changes overwrote each others and no data was lost because the changes were merged. Had this followed a last-write-wins approach, the Blog node and connector from PR would have been lost.

Synchronize your changes?

Depending on which order you or the other people editing your diagram opened it in edit mode and save your changes, you may be prompted to synchronize your changes. When this happens, click Yes to include the other user’s modifications.

In the example above, my co-worker got the prompt to synchronize changes. In our second example, where we both worked on the same part of the diagram, I got the prompt to synchronize.

But what about conflicts?

What happens when we both edit the same part of the diagram? No problem!

In the example below, my coworker and I both worked on the lower subtree. We each added a shape and connector in the same position on the drawing canvas. When I synchronized our changes, I saw they’d added something in the same position, and could easily reposition it.

In draw.io, the changes are merged and not overwritten, so you’ll see what everyone has been working on. Keep in mind though that sometimes, you may need to rearrange overlapping shapes!