commit 63d4460d28f3fc063102a38d575b282a45a6b1f9
parent e1cefbaee28bae5d3a22745dd10606686269c84b
Author: mtmn <miro@haravara.org>
Date: Fri, 17 Apr 2026 22:45:46 +0200
chore: update docs
Diffstat:
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/architecture.md b/docs/architecture.md
@@ -44,7 +44,7 @@ User configuration is split into two layers:
2. **Environment variables** (runtime, sensitive): shared API keys and S3 credentials are read from the environment at startup and applied to all users.
-Each user gets their own `UserContext` with an independent DuckDB connection, sync loop, and `isSyncing` flag. A shared `isSyncing` gate prevents reads during active syncs.
+Each user gets their own `UserContext` with an independent DuckDB connection, sync loop, and write lock (`AVar Unit`). The write lock serializes all sync transactions — if a user has both ListenBrainz and Last.fm configured, their transactions are queued rather than run concurrently. HTTP reads do not acquire the lock; DuckDB's MVCC provides consistent snapshots.
## Configuration Reference