From the 2026-07 architecture review (basic-memory-cloud docs/architecture-review-2026-07.md, diagram 3).
The system has two write directions. All markdown note writes converge on the DB-first accepted-write pipeline (knowledge_router -> NoteContentMutationService). The resource_router (api/v2/routers/resource_router.py:141,259) is the remaining file-first fork: it writes storage inline before the DB — on cloud that is a synchronous Tigris write inside the request, the pattern the DB-first redesign eliminated for notes.
Verified in review: the canvas MCP tool is the only writer of the resource POST/PUT endpoints (mcp/tools/canvas.py:132-155). Cloud consumers of resource endpoints (public shares, preview, review) are all GET reads. Editor image uploads already go file-first via PUT /webdav/... -> Tigris webhook -> index_file.
Tasks:
Acceptance: no synchronous in-request object-storage writes remain on any content path.
From the 2026-07 architecture review (basic-memory-cloud
docs/architecture-review-2026-07.md, diagram 3).The system has two write directions. All markdown note writes converge on the DB-first accepted-write pipeline (
knowledge_router->NoteContentMutationService). Theresource_router(api/v2/routers/resource_router.py:141,259) is the remaining file-first fork: it writes storage inline before the DB — on cloud that is a synchronous Tigris write inside the request, the pattern the DB-first redesign eliminated for notes.Verified in review: the canvas MCP tool is the only writer of the resource POST/PUT endpoints (
mcp/tools/canvas.py:132-155). Cloud consumers of resource endpoints (public shares, preview, review) are all GET reads. Editor image uploads already go file-first viaPUT /webdav/...-> Tigris webhook ->index_file.Tasks:
docs/ARCHITECTURE.md: markdown notes = DB-first accepted writes; everything else (binaries, uploads, imports, external edits) = file-first through the storage-event pipelineAcceptance: no synchronous in-request object-storage writes remain on any content path.