drawio
drawio copied to clipboard
Add realtime collaboration
This is not going to be implemented given Atlassian's timescales for killing on-premise Confluence.
Why? On-premise data center confluence is not going anywhere. Will you at least consider implementing realtime collaboration for that version of confluence?
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.
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.
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.
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.
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.
- I want to edit a Board macro
- If admin has configured a collab server, try to connect automatically, else
- Open standard edit mode,
- Finally, commit result from collab server as
when press save.
Perhaps that would be simpler to implement?
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.
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.
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.
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 this thread is about RT on confluence DC only, I've moved to https://github.com/jgraph/drawio/discussions/3138
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
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.
Support for this would be greatly appreciated. We cannot use the Cloud.
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?
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.
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.
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.
Also, see pollingInterval and maxAutosaveDelay in https://www.drawio.com/doc/faq/configure-drawio-confluence-server.