Multiple use TW's and persistence

I am pondering on having a TW that can be used by many users but having persistence as well. For example, user1 (U1) loads the TW and performs some actions that store data in tiddlers. We want the changed TW to be saved and accessible by U2, who can then also perform some actions on the changed TW with persistence to save their changes, etc.

How do people on this list support such functionality? What if U1 and U2 are not on the same network? And what if U1 and U2 try to perform their actions in an overlapping manner? Is there a way of linking to an external data store (eg. MySQL, etc)?

Lots of thoughts and few answers at present.

bobj

I would love to here experiences on multiuser too.
My wife and I are bitten quite often, by overwriting the same (shared) TW.
If there was only a saving-plugin which incorporates event-sourcing
which imho is one of the best patterns for offline-first multiuser webapps… Explain Event Sourcing Like I'm Five: Intro

Good article, thanks.

The good news is that this is on the way as a built-in capability. The bad news is that it’s not at all clear (at least to me) when it will arrive.

Yes, but it promises to be so much more! Part 1 published Jan, 2022. Parts 2 - 7 identified and yet to be published. I would love to read the whole thing!

yes, I concur, @Scott_Sauyet , it is enticing. Cant wait for the rest.

Good news about the multiuser version and the link to @jeremyruston notification.

bobj

It depends what we mean by “arrive”! The version of MWS that is available now is functional, and ready for users to cautiously experiment with it. So in a sense it has already arrived.

MWS needs feedback from users so that we can improve it. Working with software early in the development cycle does require a defensive posture: one has to work on the assumption that things will break, and mitigate the risks of losing important data.

To help with this, MWS provides the commands --mws-load-archive and --mws-save-archive to make it easy to extract all of your data as a simple directory of JSON files.

MWS is currently marked with the stability level “experimental”, which means that it is subject to changes that are not backwards compatible. Because it is important to get these new features right, it will probably not transition to “stable” for 6-12 months.

MWS runs on Node.js and so the barriers to get it up and running are much higher than working with TiddlyWiki as a single HTML file, in particular the need to be familiar with the terminal and npm. I plan to package MWS as a desktop application along the lines of TiddlyDesktop which will make it much more accessible to a wider range of users.

8 Likes

I have been experimenting with the MWS setup, so am looking forward to this next refactor before really getting a large amount of data into an MWS that I would need that backup/export/import functionality for. Thanks for thinking of that.

Also, I think for people who are familiar with running Node.js tiddlywiki servers, we should clarify the relationship between all those *.tid files on disk, and the new SQL databases that will be tracking a tiddler over its lifetime. Does it make sense to still render those *.tid files to disk? etc.

I finally had a chance to test this (MWS) and I just want to confirm that real-time updating of of the wiki in other tabs / browsers / devices (like BOB does) is on the roadmap (believe I saw that in the notes) but is not yet implemented - at least it’s not working in my tests so far.