Current status: architectural analysis, not a full-ACID compliance claim. Buffered-lane Atomicity and Durability are rated Partial after the 2026-07-19 table-buffer WAL (assessment beta-1); all other properties and lanes remain Unverified pending concurrency, reopen, and multi-store recovery tests.
A conceptual cutaway of the glass-box engine. Open the image for full resolution.
The central distinction
A glass-box educational architecture does not inherently weaken ACID. Visibility and transactional guarantees are separate dimensions. DotTalk++ can show buffers, stale fields, locks, commit boundaries, and recovery evidence without changing the correctness of the mechanisms underneath them.
The useful question is not whether the engine exposes its state. It is whether each operation, storage lane, and failure boundary provides a tested guarantee.
| Finding | Meaning | Example |
|---|---|---|
| Educational tradeoff | Complexity is exposed or staged deliberately for learning. | Showing dirty and stale fields before commit. |
| Implementation gap | A required mechanism is absent or incomplete. | A persistent cross-store recovery journal remains a stub. |
| Transactional guarantee | Repeatable evidence establishes a scoped behavior. | A crash/reopen test proves an acknowledged write survives. |
Two important corrections
Buffered state is not persistent inconsistency
A tuple-buffer edit can be dirty or stale while the persistent DBF and its indexes remain unchanged. The risk boundary occurs when a direct mutation or commit updates one participating store without updating, invalidating, rebuilding, or recovering the others.
The current COMMIT contract says partial commit is possible and that CDX/LMDB
rebuild is outside the command. These are explicit engineering and test
boundaries, not evidence for a broad compliance or failure claim.
Inspection does not weaken isolation
Showing a user their own pending changes does not weaken isolation. Isolation depends on session visibility, lock scope, versioning, conflict detection, and concurrent operation ordering. Buffering and per-record commit-lock mechanisms exist in source; the effective isolation model still requires captured multi-session tests.
ACID by property
| Property | Current rating | What exists | What must still be proved |
|---|---|---|---|
| Atomicity | Partial (buffered lane) | Pre-commit table-buffer rollback, per-record commit locking, and a durable redo log with an atomic commit marker + crash recovery for the buffered lane (proven 2026-07-19). | The same across non-buffered/direct paths and a multi-store DBF + memo + index transaction. |
| Consistency | Unverified | Visible dirty/stale state and validation mechanisms. | Invariants after direct mutation, successful commit, failed commit, and recovery. |
| Isolation | Unverified | Buffered state and commit locking mechanisms. | Dirty-read, repeatable-read, lost-update, conflict, and visibility behavior. |
| Durability | Partial (buffered lane) | LMDB-local commits, memo flush, and a crash-recoverable fsync'd .tbj redo log for buffered table transactions (proven 2026-07-19). | A portable DBF fsync, post-commit index reconciliation, and acknowledgement/reopen/power-loss behavior for every non-buffered store. |
Scope before score
ACID ratings belong to an operation and storage lane, not to a product name alone.
- buffered x64 mutation
- direct mutation
- LMDB-local mutation
- DBF + LMDB combined operation
- DBF + memo combined operation
- legacy index lane
A strong local guarantee cannot be generalized to a multi-store operation it does not cover.
Update — 2026-07-19: buffered-lane durability (table-buffer WAL)
The table-buffer COMMIT / ROLLBACK path gained a durable write-ahead redo
log. Buffered writes append to an fsync'd .tbj sidecar; COMMIT writes an
atomic marker and syncs it before applying to the DBF; recovery-on-open
replays a committed log or discards an uncommitted one. Three hash-verified
proofs cover the durable writer, recovery replay, and buffered DELETE.
This is the first proof-backed mechanism for the buffered lane's Atomicity
and Durability, where the commit/rollback journal was previously a stub. It is
deliberately scoped: it does not address concurrency or isolation, and two
gaps remain — a portable DBF fsync after replay, and CDX/LMDB index
reconciliation after a buffered commit (an indexed table still needs a
REINDEX). This evidence is now recorded as a re-rating in
acid_assessment_beta-1.md, moving the buffered-lane Atomicity and Durability to
Partial in the table above — a scoped gain, not full ACID.
Source-defined limits
COMMITdocumentspartial_commit_possible: yes.COMMITdoes not rebuild CDX or LMDB indexes.- the buffered-lane commit/rollback journal is no longer a stub — a durable
fsync'd.tbjredo log with crash recovery landed 2026-07-19 (see the update note above); a coordinated cross-store (DBF + memo + index) recovery journal is still open. - LMDB-local transactions do not prove a coordinated DBF + memo + index transaction.
These observations explain why the formal rating remains Unverified. They do
not diminish the value of the glass-box design; they identify exactly what the
project must test and harden.
ACID as a lesson
ACID is both an engineering objective and a Laboratory Campus lesson. A learner should be able to predict a guarantee, observe participating state, inject a safe failure into disposable data, reopen the stores, and assign an evidence-backed rating. A failed test is useful when preserved honestly because it converts an abstract acronym into a concrete requirement.
The canonical source analysis and lab contract live in the engine repository:
labtalk/docs/acid/acid_glass_box_analysis_v1.mdlabtalk/docs/acid/acid_assessment_beta-1.md(current; beta-0 retained as historical)labtalk/labs/acid/LAB_ACID_EDUCATIONAL_CONTRACT_v0.md
This public page is a reviewed derivative of those source documents.
