Skip to content

Open Questions ​

Each question records the decision needed, the current answer, and its status. Decisions from the first design interview (2026-10-31) are recorded in adr/0001-initial-design-decisions.md.

IDQuestionDecision / proposalStatus
Q-1Primary workload & data sizeMixed (OLTP + reporting); design for databases up to ~1 GB (~10M rows)decided
Q-2Storage layoutHybrid: row B+tree by default, opt-in columnar tables (post-v1 milestone)decided
Q-3SQLite file-format compatibilityNo, own optimized format. No SQLite import in v1decided
Q-4Require cross-origin isolation?Optional: basic mode everywhere, parallel reader pool when crossOriginIsolateddecided
Q-5Type systemSTRICT by default, SQLite-style affinity via opt-in LOOSE tablesdecided
Q-6Multi-tab sharingYes: Web Locks leader election + failoverdecided
Q-7MV refresh in v1Manual full refresh + CONCURRENTLY. Incremental / on-commit deferreddecided
Q-8Triggers / foreign keysTriggers deferred; foreign-key enforcement in v1decided
Q-9Runtime codegen (new Function)Yes, with automatic fallback to closures under strict CSPdecided
Q-10ATTACH multiple databasesPost-v1decided
Q-11Import/export formatsCSV and JSON/NDJSON in v1. SQL dump, SQLite import, Parquet/Arrow laterdecided
Q-12Optional modules (JSON, FTS, …)None in v1. JSON functions are a planned future moduledecided
Q-13JS user-defined functionsDeferred (future extension)decided
Q-14Isolation levelSnapshot isolation, single writerdecided
Q-15Live queries / change notificationsDeferred (future extension)decided
Q-16LanguageTypeScript, no WASMdecided
Q-17Runtime supportChromium, Firefox, Safari/iOS (current + previous stable). Node is used for unit tests only, not a supported targetdecided
Q-18LicenseMITdecided
Q-19Encryption at restNot in v1. Reserve header/page bytes so it can be added laterdecided
Q-20Default durabilityFull sync (flush on every commit, with group commit)decided
Q-21Minimum browsersChrome/Edge 108, Firefox 111, Safari 17. Feature-detected fast paths for newer browsers may come laterdecided
Q-22Worker packagingAuto-spawn via new URL(..., import.meta.url), with an overridedecided
Q-23Default result shapeArray of objects built client-side from a columnar wire format; rowMode: 'array' | 'columnar' optionsdecided
Q-24CollationsSQLite built-ins (BINARY, NOCASE, RTRIM)decided
Q-25Performance barBeat SQLite WASM on every workload; competitive with DuckDB-WASM on analytics; PGlite as a baselinedecided

Second-round decisions: adr/0002-second-round-decisions.md.

Remaining questions ​

None open. Q-8 (FK enforcement in v1) and Q-10 (ATTACH post-v1) were confirmed on 2026-10-31 when M0 started. New questions will be added as later milestones raise them.

M1 implementation decisions are recorded in adr/0003-m1-executor-and-transactions.md.

MIT License