Skip to content

Six Pillars Overview (v1.5.0)

v1.5.0 introduced six architectural pillars in a single "big bang" release. This diagram is the bird's-eye view of how those pillars relate, which module carries each, and which SemVer promotion surface each touches. ADR-010 captures the decision to ship all six together rather than serializing them across patches; the precedent of strict DO-NOT-TOUCH agent partitioning made the parallel delivery feasible.

The six pillars: (A) scaffolding for canonical seed data, (B) graph-aware retrieval (GraphRAG), (C) i18n infrastructure, (D) real-time multi-user collaboration via CRDT, (E) bidirectional federation, (F) performance (LRU caching + incremental indexing + memoization + benchmark harness). Pillars A and C are owner-approval gated at runtime; Pillars B / D / E / F are fully enabled at import.

classDiagram
    class PillarA_Scaffolding {
        <<Pillar A — gated>>
        seed_canonical.py
        +dry_run() manifest
        +download(licenses_accepted) None
    }
    class PillarB_GraphRAG {
        <<Pillar B — enabled>>
        rag/graphrag.py
        +GraphRAG
        +GraphRAGResult
        +assemble_context()
        +retriever_from_graph()
    }
    class PillarC_I18n {
        <<Pillar C — gated>>
        frontend/src/i18n/
        docs/i18n/
        +mkdocs-static-i18n
        +TRANSLATE markers
    }
    class PillarD_CRDT {
        <<Pillar D — enabled>>
        collaboration/crdt.py
        collaboration/multi_user.py
        +CRDTBackend (Protocol)
        +InMemoryBackend
        +YPyBackend
        +CollaborativeDocument
        +MultiUserSession
        +MultiUserEngine
    }
    class PillarE_BiDirFederation {
        <<Pillar E — enabled>>
        federation/bidirectional.py
        +BidirectionalSync
        +Conflict
        +SyncReport
        +Resolution
    }
    class PillarF_Performance {
        <<Pillar F — enabled>>
        search/incremental.py
        compliance/memoization.py
        LRU caching on hot paths
        +BenchmarkHarness
    }

    class FccApi {
        <<stable SemVer 1.x>>
        fcc.api.archive
        fcc.api.knowledge
        fcc.api.rag
        fcc.api.collaboration
        fcc.api.federation
    }

    class PolarisBridge {
        <<v1.5.0 stable>>
        archive/polaris_bridge.py
    }

    class LyraBridge {
        <<v1.5.0 stable>>
        knowledge/lyra_bridge.py
    }

    class UniversalServices {
        <<22-entry superset>>
        docs/ecosystem/universal-services.md
    }

    class EcosystemADRs {
        <<MADR 4.0, v1.5.1>>
        ADR-006 dual-bus
        ADR-007 SAFe
        ADR-008 POLARIS
        ADR-009 universal services
        ADR-010 six pillars
        ADR-011 GraphRAG+Zachman
        ADR-012 CRDT
        ADR-013 bidirectional federation
    }

    PillarB_GraphRAG ..> LyraBridge : augments via
    PillarB_GraphRAG ..> PillarF_Performance : LRU-cached hot paths
    PillarD_CRDT ..> PillarB_GraphRAG : compatible (no hard dep)
    PillarE_BiDirFederation ..> PillarF_Performance : incremental resolution
    PillarA_Scaffolding ..> FccApi : feeds canonical data
    PillarC_I18n ..> FccApi : uses translation markers
    FccApi *-- PolarisBridge : archive.*
    FccApi *-- LyraBridge : knowledge.*
    FccApi *-- PillarB_GraphRAG : rag.*
    FccApi *-- PillarD_CRDT : collaboration.*
    FccApi *-- PillarE_BiDirFederation : federation.*
    EcosystemADRs ..> PillarA_Scaffolding : ADR-010
    EcosystemADRs ..> PillarB_GraphRAG : ADR-011
    EcosystemADRs ..> PillarC_I18n : ADR-010
    EcosystemADRs ..> PillarD_CRDT : ADR-012
    EcosystemADRs ..> PillarE_BiDirFederation : ADR-013
    EcosystemADRs ..> UniversalServices : ADR-009

Three cross-cutting observations. First, Pillars B and D share nothing structurally — GraphRAG and CRDT are separate subsystems — but they both flow events onto the same lane-routed event bus (see ../data-flow-diagrams/dual-bus-lane-routing.md). GraphRAG query progress rides the UX lane; CRDT session membership rides the UX lane too; both contribute to live dashboard views without interfering with each other. Second, Pillar E's BidirectionalSync composes with Pillar F's incremental search index: a sync that applies 500 changes re-indexes only those 500 entities, not the full namespace. Third, all six pillars landed with ≥99% coverage on line + branch — the parallel-agent fan-out shipped 220+ new tests across the six modules.

Migration call-outs: Pillar B's GraphRAG is additive; the pre-v1.5.0 RAGPipeline keeps working unchanged. Pillar D is additive on top of the single-user CollaborationEngine; multi-user sessions are a separate subsystem. Pillar E extends the existing FederationRegistry with one new class; no breaking changes to the registry's surface. Pillar F is transparent — callers get speedups without changing code.

Key contracts

  • Pillar A (scaffolding)publications/scripts/seed_canonical.py; dry-run mode only is automatic, download requires --i-understand-external-license-implications.
  • Pillar B (GraphRAG)fcc.rag.graphrag exposes GraphRAG.query, GraphRAGResult, assemble_context; see ../sequence-diagrams/graphrag-zachman-filter.md.
  • Pillar C (i18n)frontend/src/i18n/ + docs/i18n/ + mkdocs-static-i18n; ships English baseline plus FR/ES/DE scaffolding with {{TRANSLATE_*}} markers.
  • Pillar D (CRDT)fcc.collaboration.crdt + fcc.collaboration.multi_user; see ../sequence-diagrams/crdt-multi-user-merge.md and ../use-case-diagrams/multi-user-session.md.
  • Pillar E (bidirectional federation)fcc.federation.bidirectional; see ../sequence-diagrams/bidirectional-federation-sync.md.
  • Pillar F (performance) — LRU caches + fcc.search.incremental + fcc.compliance.memoization + benchmark harness; ≥20% latency improvement on hot-path persona lookups and RAG queries.
  • POLARIS bridgefcc.archive.polaris_bridge (v1.5.0 stable). See polaris-bridge.md.
  • LYRA bridgefcc.knowledge.lyra_bridge (v1.5.0 stable, live backend pending). See lyra-bridge.md.
  • Universal services supersetdocs/ecosystem/universal-services.md; 22-entry coordination doc. See universal-services-superset.md.
  • 8 ADRsdocs/decisions/ADR-006_*.md through ADR-013_*.md.

See also

  • Module roots: src/fcc/rag/graphrag.py, src/fcc/collaboration/crdt.py, src/fcc/collaboration/multi_user.py, src/fcc/federation/bidirectional.py, src/fcc/search/incremental.py, src/fcc/compliance/memoization.py
  • Bridge class diagrams: polaris-bridge.md, lyra-bridge.md
  • Universal services class diagram: universal-services-superset.md
  • DFD: ../data-flow-diagrams/dual-bus-lane-routing.md
  • Sequence diagrams: ../sequence-diagrams/graphrag-zachman-filter.md, ../sequence-diagrams/crdt-multi-user-merge.md, ../sequence-diagrams/bidirectional-federation-sync.md
  • ADRs: docs/decisions/ADR-006_*.md..ADR-013_*.md (v1.5.1 shipped)
  • Pillar-release memory: see v1.5.0 release notes in CHANGELOG