Forty backend concerns collapse into eight semantic primitives. An element earns its place only with **irreducible physics**.

<Callout title="Closed primitive set">
  There is no ninth element. Every backend capability belongs to one of the eight elements. New
  infrastructure creates a protocol driver or plugin, preserving a small mental model.
</Callout>

```text
Elements define the model.
Plugins extend the model's capabilities.
Drivers connect the model to infrastructure.
Providers and Recipes choose where that infrastructure runs.
```

## The Structural Anatomy

Every backend concern is mapped across three conceptual tiers:

| Tier             | Question Answered                   | Definition & Scope                                                          |
| ---------------- | ----------------------------------- | --------------------------------------------------------------------------- |
| **Elements**     | _What is the thing?_                | The 8 closed primitives representing irreducible backend physics.           |
| **Capabilities** | _What can it do?_                   | Explicit facets, triggers, and execution mechanics within each element.     |
| **Composition**  | _What happens when they cooperate?_ | Emergent system properties (Realtime, Live Queries, Multi-Tenancy, Agents). |

## The Eight Primitives

<Cards>
  <Card
    title="Flow"
    description="Behavior — on(Trigger) → Effects via fx. Unified endpoints, jobs, consumers, and durable sagas."
    href="/docs/elements/flow"
  />
  <Card
    title="Signal"
    description="Data in motion — once, broadcast, and live with mandatory delivery physics."
    href="/docs/elements/signal"
  />
  <Card
    title="Store"
    description="Data at rest — SQL, KV, files with image transforms, and search behind one handle."
    href="/docs/elements/store"
  />
  <Card
    title="Clock"
    description="Time — schedules, intervals, durable sleep, and deterministic time travel."
    href="/docs/elements/clock"
  />
  <Card
    title="Gate"
    description="Permission to act — auth, tenancy, ABAC/RBAC, and rate limits at the trigger."
    href="/docs/elements/gate"
  />
  <Card
    title="Vault"
    description="Protected knowledge — fail-loud secret contracts, dynamic config, and redacted values."
    href="/docs/elements/vault"
  />
  <Card
    title="Channel"
    description="Reaching humans — email, SMS, WhatsApp, and push with built-in consent."
    href="/docs/elements/channel"
  />
  <Card
    title="AI"
    description="Reaching machine intelligence — models, prompts, agents, and MCP tool boundaries."
    href="/docs/elements/ai"
  />
</Cards>

## See How They Compose

The closed elements compose into full backend capabilities:

| Composition Target | Formula                                         | How It Works                                              |
| ------------------ | ----------------------------------------------- | --------------------------------------------------------- |
| **Realtime**       | Store + Gate + Signal + Flow → Live Query       | CDC changes re-checked against Gate RLS, streamed as SSE  |
| **Security**       | Gate + Store/RLS + Tenant + fx → Secure runtime | Tenant-isolated queries with least-privilege capability   |
| **Agents**         | MCP + Gate + OAuth + Flow → Agent-ready backend | Declared Flows exposed on :6535 behind auth confirmation  |
| **Operations**     | Manifest + Effects + Runs → Inspectable backend | Inferred effects feed Console (:6533) and wide-event logs |
