Merged
Conversation
9f74c9d to
fa82549
Compare
fa82549 to
6ff39ef
Compare
6ff39ef to
17c4534
Compare
epatters
approved these changes
Jan 27, 2026
Member
epatters
left a comment
There was a problem hiding this comment.
Haha, I guess our app being mostly local-first means that it mostly works without a persistent storage ;)
This looks great. And thanks all for trying to upstream the storage adapter tests.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
I shipped the Samod integration without it ever touching our DB?! Yup, this is equal parts embarrassing and amusing while also being a surprisingly small issue.
Thanks to the decentralized nature of Automerge we can largely get by without persistence on the server. Documents are synchronized with the server on connection from the browser local storage. So unless the user changes browsers, computers, or clears their browser cache, nothing would ever appear wrong.
Besides missing
InMemoryStorage, how did I miss this? Because I often have both Firefox and Chrome open when testing/debugging/developing, so when I cleared the browser cache from one with the server shutdown, the open documents were effectively restored from the other browsers cache as soon as the server started again. The problems really started when trying to use the staging database locally.The storage adapter tests were re-written from the
automerge-repotypescript, I'm going to try getting them upstreamed. I opened an upstream PR herebackendstartup has changed. Samod tries to read from the database on initialization and will error if the migrations have not run. Now backend blocks until the migrations are complete instead of using a status gate.The status gate gave us the ability to run long migrations without worrying about the systemd service timing out on startup. However continuing to support it would increase complexity by a non-trivial amount. Removing it simplifies things and will automatically fail the deployment if the migrations fail.