Nox-Lumen MfgNox-Lumen Mfg

Storage & isolation

Why dual storage

Agent workflows have two conflicting storage needs:

NeedTension
Fast — current session reads/writes must feel instantObject storage RTT is too slow
Durable — files must survive session endEphemeral container disks lose data

Combo Agent uses local + MinIO: local for active Sessions; MinIO for cross-node / time-durable isolation and persistence.

Rendering diagram…

Layering rules

LayerPurposeCharacteristics
Local filesystemHot Session scratchFast, single-node, lost if container is recycled
MinIO object storeDurable, shared, tenant-isolatedHigher latency, clustered, reliable

Rules (from engineering practice):

  • Local is the first write target (speed); MinIO is async backup
  • Don’t persist inside containers only — write to host mounts or MinIO
  • MinIO enforces isolation; local holds active work — don’t invert roles

Strict multi-tenant isolation

Storage namespaces tenant → user → session:

minio/
├── tenant-A/
│   ├── user-1/
│   │   ├── session-abc/
│   │   │   ├── inputs/        # uploaded originals
│   │   │   ├── artifacts/     # Agent outputs
│   │   │   └── cache/         # intermediate cache
│   │   └── session-def/
│   └── user-2/
└── tenant-B/
    └── ...
  • Tenants — physical isolation (separate buckets or mandatory prefixes)
  • Users — logical isolation (path prefix + ACL checks)
  • Sessions — isolated by default within a user; explicit Graft / Memory can bridge
  • All access passes Credential checks — no direct bucket bypass

Supported backends

BackendNotes
Local filesystemDefault; dev / small / single-node private deploy
MinIO (recommended)Self-hosted S3-compatible
AWS S3 / Alibaba OSS / Tencent COSCloud-native
NFS / CephEnterprise storage via S3 gateway

KB data’s three storage layers

Beyond Session files, KBs have structured artifacts:

DataWhere
Original files (PDF / DOCX / MP4)Object store (MinIO / S3)
Parsed chunks / vectors / metadataSearch engine (Elasticsearch)
Entities / relations / graphSearch + graph DB (GraphRAG)
Session memory (KB / LTM facts)Search (sources=kb / fact tags)

See Memory.

Async sync

Session file lifecycle:

1. Agent writes → local first
2. Return immediately after local write (Agent continues)
3. Background worker uploads to MinIO
4. On success → metadata marked synced
5. Cross-node failover → pull latest from MinIO to new local

Consistency

  • Same Session routes to one node to avoid write races
  • Failover: new node resumes from latest synced state on MinIO
  • Unsynced local changes retry with idempotency

File lifecycle

PhaseBehavior
ActiveLocal + MinIO copies
Session archivedLocal trimmed; MinIO kept
Long-term archive (policy)MinIO hot → cold tier
DeleteRetention policy driven (default retain; compliance cycles optional)

Encryption & compliance

  • In transit — TLS between components
  • At rest — MinIO SSE-S3 / SSE-KMS
  • Audit — read/write operations logged for reconciliation
  • Compliance — private deploy for data residency; SaaS boundaries per contract

On this page