Replies: 3 comments 3 replies
-
In his comment about this, @Jermolene mentioned Server-Sent Events, which I am also a big fan of 🙂 There are other options such as WebSockets and WebRTC, but in my opinion they'd probably be overkill for TiddlyWiki's needs, and they can sometimes result in fun network shenanigans. There are a lot of libraries designed to help with syncing; is the goal to avoid libraries if possible, or are we open to using one if it brings enough value? |
Beta Was this translation helpful? Give feedback.
-
I have been expermeating with websockets over the last few years. At first with Jed's "Bob server" app, most recently with a Yjs + websockets live multiplayer sync experiment with tiddlywiki. I once got a TiddlyWiki hosted on a node.js server in Google Cloud live-syncing (with bugs) from Oregon to Italy. That was fun(!!!!!), and has lodged the idea in my head ever since. I’ve come around to the idea that there should be a “fast-sync” layer that gets active wikis in memory in sync with each other (and could optionally also sync user details like cursor positions), and a “slow sync” layer that is actually writing to a shared data store that new wikis loaded into memory get “initialized” from. Hard problem, especially around “source of truth” and possibly CRDT live multiplayer code. |
Beta Was this translation helpful? Give feedback.
-
Hi @hoelzro @joshuafontany I think the threshold for integrating a 3rd party library should be fairly high. The ones we already have in the core are:
The thing that they all have in common is that that they are implementations of non-trivial algorithms, and that none of them have any other dependencies. I would contrast that with libraries that are focussed on introducing new abstractions. Generally we have our own abstractions, and so I don't find much utility for them. We need to discuss it over in the schema thread, but I am keen to update the schema to retain old versions of tiddlers. At that point, the database can be treated as a write only append store, which makes syncing significantly simpler. I am not a fan of CRDTs. I think they are solving the wrong problem; they are mostly concerned with giving users the illusion of seamless simultaneous editing a la Google Docs. I am not a fan. If I'm concentrating on writing then the last thing I want to see is the distraction of what somebody else is doing. I am much more interested in providing users with tools for interactive conflict resolution. |
Beta Was this translation helpful? Give feedback.
-
Per @Jermolene's suggestion, let's start a discussion around the sync mechanism within multi wiki server.
Existing comments:
Beta Was this translation helpful? Give feedback.
All reactions