Skip to content

Ecosystem composition

Target

This page describes intended behaviour or structure. No implementation is claimed unless a section is explicitly marked Current implementation or Evidence.

The Factory is a ConnectSoft product built from the ConnectSoft estate (decision D45). Some components exist and are used as they are, some exist and must be extended, and some must be developed. The generated ecosystem components catalog is the authority for the status of each component and for which Factory services depend on it (depends_on_components in the service model); this page is the narrative.

Build-versus-reuse map

flowchart LR
    subgraph E["Exists — used as is"]
        BT["BaseTemplate / MicroserviceTemplate"]
        WT["WorkerTemplate"]
        GW["ApiGatewayTemplate"]
        AS["Authorization Server"]
        ID["Identity microservice"]
        HC["HealthChecks aggregator"]
        MO["MessagingModel.Orleans (outbox/inbox)"]
        MM["MessagingModel.MassTransit"]
        OBS["Observability, Audit.NET, Compliance libraries"]
        DI["DataIngestion"]
        PU["InfrastructureModel (Pulumi)"]
    end
    subgraph X["Exists — extend"]
        AT["AI Agent host template"]
        AI["Extensions.AI + AgentsFramework + Factory libs"]
        MCP["Extensions.ModelContextProtocol"]
        SAAS["SaaS services: Tenants, ProductsCatalog, Entitlements, Billing, Metering"]
        SX["Extensions.Saas.*"]
        BL["Blazor Shell + MFEs + UIKit"]
    end
    subgraph D["Develop"]
        CFG["Config Platform (feature management, configuration)"]
        CP["Control plane modules: projects, publication, run control, approvals, usage"]
        RT["Runtime worker: attempt execution, workflow engine, release loading"]
        MG["Model gateway pipeline, capability registry, compute pools"]
        KN["Knowledge: ingestion, retrieval contract, repository intelligence, artifacts, memory"]
        TL["Tool executor, tool registry, MCP registry, sandbox broker"]
        GOV["Policy engine, approval policy, secret broker, evaluation records"]
        FL["Fleet operations"]
        ST["Factory Studio modules and BFF"]
    end
    BT --> CP & RT & MG & KN & TL & GOV & FL
    WT --> RT
    GW --> ST
    AS & ID --> CP
    SAAS & SX --> CP
    AT & AI & MCP --> RT & TL & MG
    MO & MM --> CP & RT
    BL --> ST
    CFG --> CP
    OBS --> CP & RT & KN & TL & GOV
    DI --> KN
    PU --> FL
Hold "Alt" / "Option" to enable pan & zoom

How each component is used

Component Status Used for What "extend" or "develop" means
BaseTemplate / MicroserviceTemplate exists Every Factory host and module follows its project model (EntityModel … InfrastructureModel) and template switches —
WorkerTemplate exists The runtime worker, reconcilers and dispatchers —
ApiGatewayTemplate exists GW-01 edge, GW-02 Studio BFF, GW-07 product gateways —
Authorization Server, Identity microservice exists Sole token issuer; accounts, MFA, memberships, the seven Factory roles as claims Role claims and delegation records added in the Identity template's role model
SaaS services (Tenants, ProductsCatalog, Entitlements, Billing, Metering) extend Factory tenancy, editions, entitlements, usage billing (BC-33, BC-34) Factory-specific meters, editions and quota dimensions; descriptor regeneration goes through the blueprint import and the recipe path (ADR-0025)
Extensions.Saas.* extend Tenant resolution per canonical ADR-0100 Orleans call-context tenant filter and messaging propagation are missing
AI Agent host template extend Runtime worker host The three entry paths (lifecycle, MCP tool, DevUI) must converge on one lifecycle pipeline; Cancelled stage; scope on AgentTraceContext
Extensions.AI, AgentsFramework, AI.Factory libraries extend Model adapters, keyed agents, lifecycle hooks Anthropic adapter (D16); model profile and receipt contracts; pin drift resolved
Extensions.ModelContextProtocol extend MCP hosting and governance Authentication on by default for non-local exposure; MCP server registry
MessagingModel adapters (Orleans, MassTransit, NServiceBus) exists Transport profiles per ADR-0012 Profile evidence (contract tests) to be produced
HealthChecks aggregator exists Factory and fleet health —
Blazor Shell, MFEs, UIKit extend Factory Studio Studio modules as MFEs; design-system alignment (D38); EN/HE/RU
Observability, Audit.NET, Compliance, DataIngestion, InfrastructureModel exists Telemetry, audit evidence, classification and redaction, ingestion pipeline, provisioning —
Config Platform develop Feature flags, runtime configuration, edition overrides Documented product; not implemented
Everything under "Develop" develop The Factory's own contexts (BC-01…BC-13, BC-16…BC-29, BC-34…BC-42) Designed platform by platform in this site; nothing exists in code

What must exist before what

This is a dependency view, not a schedule (no dates by direction).

  1. Foundations in use today: templates, identity, messaging adapters, observability — all exist; the Factory consumes them unchanged.
  2. Extensions that unblock the first governed workflow: scope on the Factory libraries, the lifecycle convergence in the agent host, MCP authentication, the Anthropic adapter, SaaS tenancy filters for Orleans.
  3. Control plane and runtime: Run Control, asset publication, policy and approval policy, usage accounting, the runtime worker with release loading — the minimum for one read-only run with one optional approval.
  4. Model, tools, knowledge: model gateway with profiles and receipts, governed tool executor, retrieval contract with scope before ranking.
  5. Experience and operations: Studio BFF and modules, observability projections, evaluation records, FinOps.
  6. Later: fleet operations, marketplace, scaffold engine as a service (optional after ADR-0025), compute pools and placement.

The dateless ordering is also expressed in capability dependencies.