Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

System Overview

taba is a next-generation infrastructure primitive that replaces the container + orchestrator model (Docker + Kubernetes) with self-describing, capability-aware workload units composed through a distributed solver.

The problem

Every step in the infrastructure abstraction trajectory — VMs, containers, Kubernetes — increased control plane complexity monotonically. The diagnosis:

  • The container is too dumb: an opaque black box that carries no information about what it needs, what it provides, or what it tolerates.
  • The control plane is too smart: an unbounded state reconciliation engine that must infer everything the container didn’t say.

The separation between workload description and orchestration is drawn in the wrong place.

The taba approach

taba draws it differently. Units describe themselves — what they need, what they provide, what they tolerate, who they trust. A deterministic solver composes them. The result is the desired state. There is no separate desired state store.

Five pillars

  1. Self-describing typed units — workload, data, policy, governance. Each carries capability declarations, behavioral contracts, and security requirements.
  2. Emergent control plane — the control plane is the union of deployed units’ operational semantics. One unit = trivial control plane. A thousand = the union of their contracts.
  3. Security as first class — zero-access default, capability-based, fail-closed on conflicts. Units are Ed25519-signed by their author. Taint propagation is structural.
  4. Data as first-class unit — datasets carry schema, classification, provenance, retention, and consent. Lineage falls out of the composition graph.
  5. Peer-to-peer — no masters, no leaders, no external metadata store. CRDT graph, erasure-coded, gossip membership.

Architecture diagram

taba-common          types, config, protobuf
    |
taba-core            unit type system, capabilities, contracts
    |
taba-security        signing, verification, taint, Shamir ceremony
   / \
taba-graph  taba-solver    CRDT graph + deterministic solver (parallel)
   / \         |
taba-erasure  taba-gossip  erasure coding + membership (parallel)
       \       /
       taba-node            per-node daemon, WAL, reconciliation
           |
        taba-cli            command-line interface
           |
        taba-k8s            K8s manifest converter

14 crates. Acyclic dependency graph. Single-node works before multi-node (progressive complexity).

Crates

CrateResponsibilityTests
taba-commonIdentity newtypes, Ppm arithmetic, clocks, config31
taba-coreUnit model, capabilities, validation, contracts86
taba-securityEd25519, scope, taint, delegation, ceremony, SLSA106
taba-graphδ-state CRDT composition graph, merge, policy chains162
taba-solverDeterministic placement, conflict detection, cycles143
taba-observeDecision trails, structured events, health, Prometheus45
taba-nodeWAL, reconciler, runtime (Docker, Native, Wasm, MicroVm), health, mode, discovery97
taba-gossipSWIM membership, signed messages, failure detection41
taba-erasureReed-Solomon GF(2^8), shard distribution, reconstruction78
taba-cliclap CLI (init, apply, unit, status, compose, audit, reconcile, daemon)55
taba-k8sK8s manifest converter31
taba-acceptanceBDD acceptance tests (cucumber-rs, 268 scenarios)—
taba-test-harnessBuilders, InMemoryUnitStore, proptest strategies33
taba-integrationEnd-to-end integration tests15

Total: 960 unit tests + 47 e2e tests + 268 BDD scenarios.

Key invariants

IDDescription
INV-C1Graph is the single source of desired state
INV-C2CRDT merge: commutative, associative, idempotent
INV-C3Solver determinism: fixed-point, no float
INV-C4WAL-before-effect
INV-C6Composition is order-independent
INV-C7One non-revoked policy per conflict tuple
INV-S1Zero-default capabilities
INV-S2Security conflicts fail closed
INV-S3Signed units, causal revocation
INV-S4Taint propagation at query time
INV-S5Author scope enforcement
INV-S7Data hierarchy: narrow freely, widen with policy
INV-S8Unique author scopes (state-producing)
INV-S9Multi-party declassification
INV-S10Multi-party trust domain creation
INV-W3Spawn depth ≤ 4
INV-R32-witness failure confirmation
INV-R6Graph memory limit, auto-compaction at 80%
INV-G3Governance units exempt from compaction
INV-O1Every solver run produces a decision trail

See specs/invariants.md for the complete list (66 invariants).