Responsibility map

July 10, 2026 ยท View on GitHub

This note records which application owns which responsibility today, and the one move still planned. Read it before proposing a refactor that crosses app boundaries.

Where responsibilities live

ResponsibilityAppStatus
Document metadata, MVCC, changes, replication, historybarrel_docdbexists
Object bytes (blobs)barrel_docdb attachments (barrel_att_backend)exists
Vector segments, ANN, BM25, hybrid searchbarrel_vectordbexists
Embedding generationbarrel_embedexists
Rerankingbarrel_rerankexists
Encryption at restbarrel_cryptoexists
One id over docs + blobs + vectors, record mode, timelinebarrelexists
Agent layer: spaces, capabilities, sessions, handoffsbarrel_spacesexists
Transports (REST/JSON, MCP)barrel_serverexists
Durability, placement, replication orchestration, query routing across nodesbarrel_fabricfuture

Settled decisions

  • Object storage is not a separate app. Blobs are barrel_docdb attachments with a pluggable backend per database (barrel_att_backend): a document owns its blob, matching how vectors and metadata attach to the same id. See ../architecture/overview.md.
  • The agent layer shipped as barrel_spaces plus the MCP surface in barrel_server, not as a separate barrel_agents app.

Still planned

  • barrel_fabric: dataset agents, durability, placement, replication orchestration, and query routing across nodes. Moving cross-node concerns there is its own reviewable change with its own tests, not folded into any other app.