Skip to content

Migrate embedded storage to SQLite - #56

Merged
TheFellow merged 3 commits into
mainfrom
feat/sqlite-multiprocess
Aug 11, 2026
Merged

Migrate embedded storage to SQLite#56
TheFellow merged 3 commits into
mainfrom
feat/sqlite-multiprocess

Conversation

@TheFellow

Copy link
Copy Markdown
Owner

Summary

  • replace bstore/bbolt persistence with CGO-free embedded SQLite via modernc.org/sqlite
  • add WAL-backed same-host multi-process access, immediate writes, busy handling, and serialized versioned migrations
  • migrate middleware transactions, SQL filter pushdowns, every domain DAO, tests, and documentation
  • add concurrent Store visibility/startup coverage and preserve exact residual filter semantics

Validation

  • go test ./...
  • go test -race -shuffle=on -count=1 -timeout=5m ./...
  • go vet ./...
  • go tool arch-lint -config=.arch-lint.yaml
  • GOTOOLCHAIN=go1.26.5 go run github.com/golangci/golangci-lint/v2/cmd/golangci-lint@v2.12.2 run
  • go mod verify
  • git diff --check

Migration note

Existing bstore/bbolt database files are not SQLite files. Existing local data must be reseeded or exported with the previous version and imported after upgrading.

@TheFellow
TheFellow merged commit 28bf636 into main Aug 11, 2026
3 checks passed
@TheFellow
TheFellow deleted the feat/sqlite-multiprocess branch August 11, 2026 01:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant