Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions .changeset/config-store-targeted-reads.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
"@triplex-build/triplex": minor
---

Make the Triples-backed `ConfigStore` read only what each operation needs. `resolveRef` and
`snapshotById` read the ref and the objects reachable from the snapshot, cache immutable records
by identity, and keep decoded trees until `:triplex/valid-under` changes; `commit`, `setRef` and
`reverseDependencies` no longer load the whole store. `ConfigStore.commit` no longer returns a
`store`: call `load()` for the whole store.
6 changes: 5 additions & 1 deletion ARCHITECTURE.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,11 @@ hosts typed configuration as a modular layer over the same core.
- `ConfigStore` records reserved `_triplex/config/*` entities and `:triplex/*` attributes through
the `Triples` transaction boundary. Release creation and an optional ref move are atomic;
reverse-dependency and impact-candidate discovery use Datalog, while content identity and proof
verification remain Merkle operations.
verification remain Merkle operations. Reads are targeted: resolving a ref reads the ref and the
objects reachable from its snapshot, and a commit reads only the records its transition consults.
Immutable records are cached by identity; decoded snapshot trees are cached until
`:triplex/valid-under` changes, checked through `dependencyState`. `load()` remains the
whole-store view.
- `ConfigRuntime` is the narrow execution bridge between the models. It resolves a config ref,
derives a catalog from that immutable release, materializes only the current or historical
Triple facts statically reachable by the rule, and invokes the pure evaluator. It rejects
Expand Down
Loading
Loading