Skip to content

[Roadmap] Brainiac product evaluation — fitness as company-wide memory, and the plan #283

Description

@CheeryProgrammer

Comprehensive critical evaluation of Brainiac's fitness as an open-source, self-hosted company-wide memory / knowledge base of everything — runs on weak hardware, scales to strong, dead-simple to self-host. Produced by a panel of specialist reviews across architecture, retrieval, data/scale, ingestion, deploy/DevEx, observability, security, and product/docs.

Verdict

Brainiac is an unusually well-engineered artifact — disciplined core/adapter split, a crisp two-layer model (vector chunks + provenance graph in one Postgres), a genuinely one-command deploy, and rationale-rich docs. It is a strong single-user / single-team memory today. It is not yet fit for the stated goal — company-wide, multi-team, everything-memory — for four structural reasons:

  1. Retrieval is under-built for a real KB. Single-model dense-only search, and nomic-embed-text is used without its required search_query:/search_document: prefixes — a silent, corpus-wide recall loss that also invalidates every tuned threshold. No BM25/keyword fallback, no reranker, no fusion. ([Epic] Retrieval quality — make it a real knowledge-base engine #202)
  2. The knowledge graph does not build at scale. With the default chat-driven extractor, bulk/auto-import stores chunks with zero nodes/edges; the differentiating layer only fills via manual curation. Coverage is Notion+Markdown only; Watch()/incremental-sync is dead code; no PDF/docx/html. ([Epic] Ingestion & connector breadth — memory of *everything* #205)
  3. Effort is inverted. Heavy investment went into Layer-2 multi-tenant isolation (namespaces, quotas, export/import, temporal, rollups) while the retrieval core, connector breadth, and observability — the things the goal actually needs — lagged. And the isolation itself has real holes (below).
  4. It's demo-grade on the ops/security/scale axes a company relies on: /metrics exposes almost nothing alertable, backups are off by default and restore is untested, there's no index behind the isolation wall, and by-id mutations bypass the wall entirely (cross-namespace takeover).

Nothing here is a rewrite — the model is lean and the seams are right. It's a matter of re-prioritizing toward the goal.

Cross-cutting themes (what the panel converged on)

Recommended sequencing

Epics

What is superfluous / to cut or defer

Full per-domain analysis is captured across the epic issues above; each child issue carries the concrete file:line findings and fix direction.

Metadata

Metadata

Assignees

No one assigned

    Labels

    epicEpic: a roadmap theme tracking child issues

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions