QNTX Architecture Documentation

Based on the arc42 template. This document is an entrypoint — it links to existing docs where content lives and fills gaps inline.


1. Introduction and Goals

Requirements Overview

QNTX stores and retrieves attestations — structured claims of the form:

[Subject] = [Predicate] ∈ [Context] ⌬ [Actor] ✦ [Time]

Building blocks: + (as), = (is), ∈ (of), ⌬ (by), ✦ (at).

Current subsystems:

Quality Goals

PriorityQuality GoalRationale
1Privacy / Local-firstYour data stays yours. Local inference, local storage, no mandatory cloud.
2Data visibilityInformation density over aesthetics. Data-first hierarchy in all interfaces.
3PerformanceFast enables exploration. Minimal dependencies, efficient rendering, no decorative overhead.
4Semantic claritySymbols (⋈ ⨳ ⌬ ✦ ꩜) as namespaces. Meaning over decoration.
5ExtensibilityCore is minimal. Everything else is a plugin via gRPC. Grammar itself is attestable.

See Design Philosophy.

Stakeholders

StakeholderExpectation
Creator / stewardSystem works, vision intact, honest documentation
Community (forming)Participation, transparency, shared governance
Organizations wanting local AIPrivate LLM capabilities, no cloud dependency
The publicA public good — intelligence tooling

The intent is public good. Governance is centralized now, with decentralized stakeholdership as a future direction.


2. Architecture Constraints

Constraints are expressed as axioms — invariants that throw at runtime if violated.

Full definitions: AXIOMS.md


3. System Scope and Context

Business Context

  Browser ──▶ QNTX node ◀──▶ QNTX node ◀── Browser
  Phone ────▶     │                │     ◀── Phone
              Plugins          Plugins
              (gRPC)           (gRPC)
                  │                │
                  └──── sync ──────┘
                   Merkle / symmetric
                   no coordinator

              any transport:
              TCP, WebSocket, LoRa, satellite, serial

Technical Context

┌──────────── Core ─────────────┐
│  ATS (attestation type system) │
│  ⊔ DB (storage)               │
│  ≡ config (configuration)     │
│  ꩜ Pulse (async execution)    │
│  ⋈ ax (query)                 │
└───────┬──────────┬────────────┘
        │          │
  gRPC (plugins)  WebSocket + REST (browser)
        │          │
  ┌─────┴───┐  ┌──┴──────────────┐
  │ Domain  │  │ Web UI           │
  │ plugins │  │  Canvas (⧉)      │
  └─────────┘  └──────────────────┘

See Understanding QNTX.


4. Solution Strategy

Key technical decisions and why:


5. Building Block View

┌──────────────────── Core ────────────────────┐
│  ATS        Attestation Type System          │
│  ⊔ DB       Storage                          │
│  ≡ config   Configuration                    │
│  ꩜ Pulse    Async execution + scheduling     │
│  Server     HTTP, WebSocket                  │
└──────────────────────────────────────────────┘
         │                    │
    gRPC (plugins)       shared core
         │                    │
┌────────┴────────┐  ┌───────┴────────────────┐
│ Domain plugins  │  │ Rust core              │
│                 │  │  node and browser      │
└─────────────────┘  └────────────────────────┘

Architecture deep-dives:


6. Runtime View

Key runtime flows:

Attestation lifecycle: assert → store → index → notify watchers → trigger downstream elements

꩜ Pulse execution: schedule tick → resource check → job dispatch → worker execution → result

Element meld DAG: meld detection → edge creation → subscription activates → attestation arrives → downstream element fires

Browser ↔ node: live updates over WebSocket, requests over REST.

Detailed flows:


7. Deployment View

A single binary with the web UI inside. Zero configuration required.

Same binary everywhere:

Clients:

See Installation, Nix Development, Release.


8. Cross-cutting Concepts

SEG / Sym / Element

Every operator has three layers:

This is the conceptual framework that runs through everything — backend, frontend, documentation, UI.

Full definitions: GLOSSARY.md

Continuous Intelligence

A system that is always ingesting (⨳), always processing (꩜), always queryable (⋈).

See vision/continuous-intelligence.md.

Sync and Convergence

Attestations are append-only. Sync is set union — commutative, idempotent, convergent. No vector clocks, no conflict resolution. Two claims about the same subject aren't a conflict — they're two claims.

Vision Documents

Other


9. Architecture Decisions

ADRDecision
001Domain logic lives in plugins, core stays minimal
002Plugin configuration via ≡ config with layered precedence
003gRPC for all plugin communication
004Plugins register ꩜ Pulse handlers dynamically
005Rust → WASM for browser/mobile ATS parsing
006Protobuf as single source of truth for types
007TypeScript gets interfaces only from proto
008Separate prost (types) from tonic (transport) in Rust
009Edge-based DAG for multi-directional element melding (Elements')

10. Quality Requirements

Privacy / Local-first
├── Local inference, local storage, no mandatory cloud
├── No telemetry, no phone-home
└── Your data on your machine

Data visibility
├── Information density over visual polish
├── No text truncation (no ellipsis, ever)
└── Functional color only — color conveys status, not beauty

Performance
├── System fonts, minimal dependencies
├── Real-time updates
└── Efficient rendering, no decorative overhead

Semantic clarity
├── Symbols as visual grep — scan and know the domain
└── Consistent patterns for entity relationships

Extensibility
├── Plugin architecture via gRPC
├── Attestable elements — plugins attest new UI elements
└── One core shared across platforms

See Design Philosophy.


11. Risks and Technical Debt

RiskImpactMitigation
Abstraction barrier — "attestations" may be too abstractAdoption frictionGood ingestion (⨳ ix), gradual onboarding
Cold start — empty store = no valuePoor first-run experiencePrioritize connectors: git, files, APIs
Complexity budget — ATS + Pulse + Elements + Sync each carry weightLayers compound instead of composeEach layer independently useful, clear contracts
Single steward — bus factor of oneProject continuityCommunity formation, honest docs, public good model
ATS parser is Rust's aloneA build without the Rust core parses nothingADR-005

12. Glossary

See GLOSSARY.md.