drawio icon indicating copy to clipboard operation
drawio copied to clipboard

Add realtime collaboration

Open mararad opened this issue 4 years ago • 10 comments

mararad avatar Nov 12 '20 12:11 mararad

This is not going to be implemented given Atlassian's timescales for killing on-premise Confluence.

davidjgraph avatar Jan 21 '21 10:01 davidjgraph

Why? On-premise data center confluence is not going anywhere. Will you at least consider implementing realtime collaboration for that version of confluence?

creker avatar Jun 06 '21 16:06 creker

We can re-open for DC, but there are a number of factors that might it unlikely on DC:

  • DC performance. Performance testing requirements on apps for DC are pretty strict. You need to convincingly show that functionality does not adversely affect nodes. Collab means moving from the current architecture, which is basically zero server load, to one that could have hundreds of open sockets to the server with ongoing comms. It would be a massive architectural change, take many months and it's entirely possible that the end result is not acceptable in terms of server load.

  • DC architecture. DC lives across many nodes, whereas server was a single node. All of the clients would need to be connected to the same DC node, there's no way to implement this with the default DC setup. Then you're looking at using the DB's eventual consistency for the collab. That's an unacceptable load on the DB and it's just too slow, the nodes cache as much as they can to save the DB. Could also try it on the Media API service, but the same issues apply there, also.

  • Atlassian's commercial position. Yes, Atlassian are using the phrase "long term" to describe their support of DC, but there are no fixed dates given. In the earnings call after the server EOL announcement Scott answered a question about DC customers moving to cloud with "...we expect that all our customers will migrate to cloud over the medium term.". In their shareholder letter, they wrote " we will be laser-focused on bringing all Atlassian customers to the cloud over the coming years.".

We need exact minimum dates that DC will be around for. Atlassian is saying everyone is going to cloud and I believe that's what they intend. It's extremely hard to justify this level of investment (it's a very complex feature in DC) without knowing there's time to get return on the investment.

davidjgraph avatar Jun 07 '21 09:06 davidjgraph

I find it very hard to believe Atlassian will be able to move everyone to cloud. Some companies can't possibly do that for various reasons. They will loose those customers (given DC is very expensive, it will be pretty big customers). But it's your call regardless. Especially given it's non trivial from technical standpoint. Thank you for reconsidering it.

creker avatar Jun 07 '21 09:06 creker

We haven't ruled this out, but it's still proving very difficult technically (impossible).

One workaround would be to use our servers to implement the RT, but I assume for the vast majority of DC users this is a no-go.

https://community.developer.atlassian.com/t/real-time-communication-for-confluence-dc-plugin-websocket-sse/56322/2 is one question we need an answer to.

davidjgraph avatar May 24 '22 09:05 davidjgraph

That’s an interesting thought - I wouldn’t rule it out. There’s have to be security reviews as per any SaaS solution but big companies using Confluence DC will also have other SaaS solutions.

seanblezard avatar Aug 09 '22 17:08 seanblezard

Butting in. Could a different approach to solving this be to have an onprem drawio server for handling whiteboards with realtime collaboration? Given that there is some graceful degradation (if the server isn't up, only allow single user edit) that would be an option (for my organisation at least).

The collab server could verify that a valid confluence instance has connected if needed.

  1. I want to edit a Board macro
  2. If admin has configured a collab server, try to connect automatically, else
  3. Open standard edit mode,
  4. Finally, commit result from collab server as when press save.

Perhaps that would be simpler to implement?

66115707 avatar Aug 10 '22 07:08 66115707

The pricing doesn't allow for supporting another customer server that we are committed to keeping online. We'd need extra to staff to develop the product, document it, monitor the security surface. Users would need to be willing to pay more than the current cost of the app again just for that server. I'd strongly prefer if Atlassian could provide a notification system within the existing confluence server.

davidjgraph avatar Aug 10 '22 07:08 davidjgraph

I can't speak for Atlassians internal roadmap, but as it is we're going to spend a lot of money on a whiteboard solution within 12 months. If it is spent on extending an existing solution or buying from another provider isn't really an issue.

I think that at the very least it would be worth your time to perform a customer survey in this direction, because for DC customers offline is a usp. But I won't push that further here :) I appreciate the fast feedback cycle.

66115707 avatar Aug 10 '22 07:08 66115707

Feedback is very welcome, we don't get a lot sometimes. The drafts would live within confluence anyway, so it's really just the notification system. Running a server just for that isn't good for us or your IT...

One possible is WebRTC, but that still needs a server to keep the control channels open.

What we are doing atm is moving autosave drafts out of the DB and into page attachments. This is a good thing generally, but also makes very basic polling possible. Assuming that works we can add very slow polling (say 30 seconds) in just so you get occassional update, as opposed to only merging when you save.

We can make that polling figure configurable globally. Another possible would be a "poll faster" button per diagram.

The problem is people really do want real time real time. Updating every 10 seconds will be cute, but no. That's why we really need a solution to https://community.developer.atlassian.com/t/real-time-communication-for-confluence-dc-plugin-websocket-sse/56322/2.

davidjgraph avatar Aug 10 '22 08:08 davidjgraph

I saw just the post Real-time multi-user collaborative diagramming. Does this mean that realtime collaboration is likely to come to DrawIO/DiagramsNet (both hosted and self-hosted) as well? Would be a game-changer for us as we are looking for alternative whiteboard solutions but multi-collab DrawIO would probably cover most of them.

lfvjimisola avatar Oct 28 '22 11:10 lfvjimisola

@lfvjimisola this thread is about RT on confluence DC only, I've moved to https://github.com/jgraph/drawio/discussions/3138

davidjgraph avatar Oct 31 '22 11:10 davidjgraph

Hi David

There are very few options for real-time digital whiteboards that are GDPR/schreems II compliant. We love draw.io and, given the unfortunate absence of support for real-time updates in Confluence DC due to Atlassian, your suggestion of polling would actually be very useful to our organisation.

In your reply you seemed to indicate that polling would be feasible to implement (and also make it configurable), so I am curious if you think this is something that we might see a future release? I would certainly be willing to assist in testing such a feature, if it is of any help.

Many thanks Karl

kdmon avatar Jan 26 '23 14:01 kdmon

We are looking at something that uses polling and switching the draft out of the database and into attachments, since we don't want to poll the DB. It's in the research stage currently, so ETAs aren't possible.

davidjgraph avatar Jan 27 '23 16:01 davidjgraph

Support for this would be greatly appreciated. We cannot use the Cloud.

moo1210 avatar Feb 25 '23 04:02 moo1210

Forgive my ignorance, but if Confluence DC currently provides functionality for users to edit pages simultaneously via Synchrony is there a technical limitation why draw.io can't leverage it too? Users aren't required to be on the same node in the cluster to simultaneously edit pages. Is the reference to DB load being too high simply because draw.io content overhead is just that much greater than standard Confluence editor content?

dfresh4130 avatar Mar 17 '23 15:03 dfresh4130

Synchrony doesn't expose the API needed for a third-party app to use it. There was talk of this, but Atlassian dropped it.

We thought of the workaround of putting data into the page itself, somehow hidden, so that synchrony would deal with collaboration, but even then Synchrony uses OT, we're using diff/sync, they are completely different implementations of data structure merging. Plus someone could just delete it from the page and you'd have a mess.

davidjgraph avatar Mar 17 '23 16:03 davidjgraph

I'm super interested in this. I work for a government agency and we need some kind of in house solution. Like many we have confluence data-center and the draw.io plugin. Almost no other collaborative whiteboard is suitable for our environment since close to zero of the mature ones support in house hosting with collaboration. So I know a lot of my colleagues would be thrilled if draw.io enabled live collaboration for the data-center version.

inquam avatar Oct 04 '23 14:10 inquam

Release is in 13.0.0, https://www.drawio.com/blog/collaborative-editing-confluence-dc.

Initially, we're only going to release for Confluence 8.9 and reduce the minimum version as we test with each Confluence version. It's a complex change, so the testing needs to be extensive, thus will take some time.

davidjgraph avatar May 17 '24 17:05 davidjgraph

Also, see pollingInterval and maxAutosaveDelay in https://www.drawio.com/doc/faq/configure-drawio-confluence-server.

davidjgraph avatar May 17 '24 17:05 davidjgraph