IOBOXX
DOCS · ARCHITECTURE · MEMORY

Memory

The substrate the whole platform converges onto.

IOBOXX is the memory system. Everything else in the architecture either sits inside memory (BPMN execution state, agent working memory), sits alongside it gating access (identity, authorization, security), or feeds into it (voice capture, external connectors). Memory is not a subsystem — it is the surface on which the rest of IOBOXX is defined.

SHAPETwo layers, one system

Memory is built from two layers that used to be documented separately and were unified at Phase 5.7. Read them as one component now — the loop spans both.

LayerWhat it isDrilldown
Object Store
the substrate
An Entity-Attribute-Value object store with two tables — oodb_object and oodb_attribute — that can represent any entity type and any field shape. Schema itself is data. Per-tenant isolation. Validated at 150K+ org scale by Salesforce.oodb
MCP
the access layer
An embedded MCP server — a Rust crate inside the standalone runtime — exposing the Object Store as a single streamable-HTTP MCP surface across discovery, read, write, semantic, memory, and raw tool categories. New reducers grow the surface automatically.portability

Phase 5.7 and 5.8 collapsed the seam. Relevance-ordered reads live in the reducers; autohop and agent-curated memory live in the MCP. The loop runs across both as one memory system.

PROVISIONSWhat memory provides to the rest of IOBOXX

The component supplies four things upward:

  • Per-principal attribution at the commitlog level. Every write is bound to a per-principal identity (Phase 5.6). Token-compensation attribution becomes a deterministic computation over the log.
  • Per-principal relevance-ordered reads. A Fundi's context is its own working set, not a shared tenant-wide mix (Phase 5.7).
  • Agent-curated memory at session end. Agents decide what to keep. Cross-session continuity happens through explicit handoff, not through autocompact (Phase 5.8).
  • One MCP surface across all reducers. Any agent that speaks streamable-HTTP MCP reaches the whole substrate through a single endpoint. Adding a reducer extends the surface — no integration work required.

PRIMITIVETensor as substrate

The Object Store is not a graph database with vectors bolted on, nor a vector store with relations bolted on. It is shaped to make tensors a first-class primitive of the substrate — quantised (TurboQuant 3-bit), indexed for relevance-ordered retrieval, and joined inline with structured attributes. That choice is what lets memory run at scale and stay portable across LLMs.

The full argument lives at tensor-as-substrate.

PORTABILITYOpen MCP. Any LLM. Any client.

Memory is reached through open MCP — the same protocol Anthropic published, the same protocol every major lab now ships clients for. The MCP layer is not a proprietary access pattern; it is the standard. Any LLM that speaks MCP can drive an IOBOXX-resident workload, and any MCP-aware client can reach IOBOXX as one of many backends.

The portability claim, and what it means for lock-in, is unpacked at portability.

COMPOSITIONHow memory composes with other components

Memory is the substrate; everything else sits in a known relation to it.

ComponentRelationship
AgentsFundis operate inside memory. They read and write through the MCP. Skills are typed Object Store objects.
BPMNWorkflow state — process instances, user tasks, tokens, variables — is stored in tables adjacent to the Object Store. The engine reads and writes through reducers.
IdentityKeycloak (single realm forus-identity) issues the JWT. The MCP tower middleware extracts claims and maps them to a stable per-principal Identity for reducer dispatch.
AuthorizationJWT-claim driven against Keycloak roles and Organization membership. Enforced via authorize_sql and per-reducer helpers.
SecurityThe vault gates encryption-at-rest. Memory is stored encrypted; the vault provides the key.
DataThe data layer describes where memory lives — Object Store for operational memory, Supabase for specific surfaces. Memory is an architectural concern; data is a storage concern.
VoiceVoice is a capture path into memory. Pipecat transcribes speech; the result is written to the Object Store through the MCP.

READING ORDERWhere to go next

Source: ioboxx-platform/knowledge-graph/domains/architecture-memory-README.md
Last updated: 2026-05-16