-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
sync functional, but not near-realtime #65
Comments
watching the console/logging while I type on macOS <-websocket-> automerge-repo, as I'm typing in one of the notes fields, there's no immediate replication of content - no sync messages are being generated. I'm a bit unclear if that's in MeetingNotes, AutomergeText, or the repository, but somewhere the "hey, there's a change" signal is getting dropped, delayed significantly (longer than a few seconds), or lost |
WebSocket investigation log (Mac <--websocket--> automerge-repo) From typing a single character in an agenda-item text field: These first two updates were from the Automerge doc's
It goes on to trigger a sync upstream
And then we see another objectWillChange from the document, which I thought was also unexpected, but looks like it may have been triggered internally to the repo. I suspect I've got some extra change notifications in the repo doc-resolve process that may be pushed extra notifications:
|
Thread on discord highlighted a possible avenue to track discrete sets of patches after applying changes - the diff API. That's not (yet) wired through to the Swift library, so I've opened an issue (automerge/automerge-swift#148) on that repo to wire that up for potential use - including in solving this issue, or related issues in Automerge-swift that aren't efficiently propagating change notifications. |
I found at least one place there's a flaw - logged as automerge/automerge-swift#149, AutomergeText doesn't have any direct means to report its changed when an underlying doc changed. In the previous setup in MeetingNotes, I was signaling updates from the coordinator (now repo), and all those places really need to be refined to reflect changes on the Automerge document, or derive a change from that notification. |
I have a first cut of this resolved with automerge/automerge-swift#150, but I'll need to cut a full release of automerge-swift to verify that resolves the problems I'm seeing with MeetingNotes, and to establish tests that validate the changes signals propogate as expected. The implementation was the worst version possible, just to verify that was the issue, and there's pending work to "make that better" with automerge/automerge-swift#151 and automerge/automerge-swift#152 |
I suspect I have this properly sorted, with updates in Automerge-swift, but to properly test it here along with |
After having updated MeetingNotes (automerge/MeetingNotes#42), the sync is clearly functioning, but its no longer happening in realtime.
When I activate websocket channel from two devices to an upstream automerge-repo server, they both appear to sync, but the content isn't replicated realtime.
When I active local peer2peer, the changes replicate faster, but on live updating of text views in MeetingNotes, there are no changes flowing back into the UI - so typing on one doesn't appear on the other.
My tests to date have been iOS <-> Mac:
The consistency of behavior makes me think there's at least some issue in the interface from automerge-repo-swift and what's happening in the docs to replicate changes, and I suspect it's on the "incoming change from remote peer" path.
The text was updated successfully, but these errors were encountered: