Skip to content
Cadelic

How Cadelic is built

The data model behind Orbit and Sites: a file-based knowledge graph, an append-only decision ledger, canonical entity resolution and a shared AST patch protocol.

1. The shape of the system

Network Boundary
Capture Pipelines
Knowledge Graph
Append-only Ledger
Agent Layer
AGENTS.md
Figure 1. The Cadelic system architecture. The network boundary is absolute.
Text equivalent for screen readers
A diagram showing capture pipelines feeding a knowledge graph and ledger, which are read by an agent layer. Satellites interface with the graph. A dashed rectangle represents the strict network boundary.

2. The data model#

Entities, edges and ledger entries are represented on disk as files, not rows in a relational database. This is a deliberate trade-off.

A file-based approach allows the graph to be version-controlled, branched, and easily audited using standard POSIX tools. It avoids the lock-in of a proprietary database format and simplifies backup and migration. The trade-off is higher latency for complex multi-hop traversals compared to a dedicated graph database, but given the scale of a typical enterprise's context window, this penalty is negligible in practice.

bash
/graph
  /entities
    supplier_acme.json
    contract_2026.json
  /edges
    relations.json
/ledger
  2026-03-04.log
  2026-03-05.log

3. Entity resolution#

Entity resolution is the mechanism that collapses variants to a canonical node.

When the capture pipeline encounters "ACME Ltd" and "Acme Limited", it applies a set of deterministic rules to evaluate similarity. If the confidence score is above the threshold, they are merged. If it falls into an ambiguous range, the system defers to a human for arbitration.

The failure mode of automated entity resolution is silent merging of distinct entities. Orbit mitigates this by logging every merge decision in the ledger, allowing any collapse to be unpicked later.

4. The append only ledger#

The ledger records every action, decision, and entity mutation. It is strictly append-only.

Because no record is ever mutated in place, you can reconstruct the exact state of the knowledge graph at any point in time. Compaction runs periodically to fold intermediate states for performance, but the raw entries are never discarded.

json
{
  "timestamp": "2026-03-04T09:14:22Z",
  "actor": "capture",
  "action": "resolve",
  "source": "invoice/ACME-0912.pdf",
  "target": "entity:supplier/acme"
}

5. The agent contract#

Agents operate strictly within the bounds defined in AGENTS.md. This file is held under version control in your repository.

It specifies which tools an agent can use, what it is permitted to write, and what requires human approval. By holding the system prompts as files, prompt engineering becomes a standard engineering practice with code review and history.

6. The patch protocol#

Both the visual canvas and the AI agent in Cadelic Sites mutate a normalised AST through a single shared patch protocol. This ensures that neither can produce a state the other cannot read.

json
// The Patch Object
{
  "op": "replace",
  "path": "/components/Hero/props/title",
  "value": "New Headline"
}

7. Inference#

Orbit runs local inference for entity extraction, summarisation, and routine agent tasks.

We support models conforming to the Llama architecture. For acceptable latency on unprompted background work, we recommend an accelerator with at least 24GB VRAM Nvidia or 32GB unified Apple Silicon. You can also provide your own API keys for hosted models if local hardware is not available.

8. Limitations#

Orbit is bad at real-time telemetry analysis; it is designed for unstructured business documents, not high-frequency log streams.

It cannot yet ingest complex CAD files or proprietary binary formats without a custom parser. Scanned PDFs with poor OCR quality produce degraded entity resolution. In these cases, a human operator is still required to verify the extracted text before it enters the graph.

9. Open questions#

We have not settled the exact schema for federating ledgers across multiple Orbit instances in a disconnected environment. If you are solving similar distributed state problems, we invite correspondence.