Skip to content

rfc: add RFC 0050, engine crate topology - #615

Draft
aaltshuler wants to merge 2 commits into
mainfrom
rfc/0050-engine-crate-topology
Draft

rfc: add RFC 0050, engine crate topology#615
aaltshuler wants to merge 2 commits into
mainfrom
rfc/0050-engine-crate-topology

Conversation

@aaltshuler

@aaltshuler aaltshuler commented Sep 3, 2026

Copy link
Copy Markdown
Collaborator

Drafts RFC 0050: split the engine package into a seven-crate family with a sealed substrate boundary. omnigraph-lance is the only production crate that links Lance and DataFusion execution. Its operational API is Lance-free, while a closed compatibility module preserves the four existing read-only SnapshotDataset and SnapshotScanner signatures that already name Lance types.

The RFC now makes the authority boundaries explicit without changing user behavior: omnigraph-graph owns accepted graph state and captured write authority; omnigraph-exec owns typed read execution; and a policy-configured omnigraph-write owns supported graph-write orchestration. Existing actor-less maintenance dispositions remain unchanged.

Graph publication is separated from physical CAS. publish_once performs graph-aware validation and bounded retry, while omnigraph-lance exposes a single-attempt manifest CAS tied to an exact physical observation. Exact-authority operations keep a fixed WriteTxn; existing explicitly rebasable adapters retain that behavior. Only proven no-commit contention retries, while ambiguous outcomes remain recovery-owned.

The facade keeps the current public Rust surface by re-export. New crates publish in dependency order, with API snapshots and structural guards covering the compatibility allow-list, policy dispositions, and the sole workspace production caller of the physical manifest CAS.

Process: draft status per step 2 of the RFC guide. Registers 0050 and moves the next available number to 0051.

Checks: python3 scripts/check-docs.py, bash scripts/check-agents-md.sh, python3 scripts/check-workflow-action-pins.py, and git diff --check pass.

Draft the decision record for splitting the engine package into a sealed substrate crate, a logical authority crate, an executor crate, a write-protocol crate, and a thin facade, with typed seams and the guards that make the boundaries compiler facts. Registers 0050 and advances the next available number.
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