Realtime Collaborative Editing

I am curious if there is a way to have multiple users edit a diagram at the same time. I have built a workaround (for now) that reloads the diagram anytime another user makes a change. The problem though is that this essentially reloads the model and removes any undo history. Additionally, if two users make the changes at the same time, one overwrites the other’s changes.

By coincidence we are working on such a sample right now. But I cannot promise that it will be finished at any particular time.

Okay great! Will this question be updated when you have this implemented? Or do I need to routinely check for changes?

The former.

Partly implemented: [EDIT: removed link] This is alpha-quality software.

No support for undo/redo. And I’m confident there are a lot of bugs, since it hasn’t been tested a lot.

Each user has their own Diagram.position, Diagram.scale, Diagram.selection and anything else that isn’t stored in the model.

I was going to show other people’s selection visually in the diagram, but haven’t figured out how to do that in a nice manner. Originally I thought it would be good to show translucent node or link backgrounds where the color would match up with one assigned to the other person, much like how you see different insertion point cursors in Google Docs. This could be done without modifying any templates. But I’m not so keen on that design. For now the “Other users” line shows their user ids and their selected part keys.

This is a great start! I look forward to seeing how this progresses and seeing undo/redo functionality in particular.

Just checking in. Has there been any progress on this since last year?

Not really. You might want to contact who I believe have some software that implements what I suspect you are looking for.

Okay. Thank you!

Just wanted to check the sample provided but seems it is not working as not able to get the find go.js file
Will you please make this sample working again.

Hi @walter! Really neat that you made some progress on this. I realize it’s been a while, but is there a repo with the code that you can point us to? I’d be curious to see how you went about it.

Sorry, we’ve been working on different projects and haven’t had the time to do this right.

It’s still on our list of things to do someday.