Skip to content

MarketplaceHost

Target

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

Bounded context BC-27 Marketplace Catalog & Distribution
Platform / plane Marketplace / Capability & Tools
Deployment granularity standalone host
Status target · ConnectSoft.Factory.Marketplace
Built from connectsoft-microservice · libraries: connectsoft-extensions-saas-abstractions, connectsoft-extensions-saas-asp-net-core, connectsoft-extensions-messaging-model, connectsoft-extensions-messaging-model-orleans, connectsoft-extensions-persistence-model-nhibernate, connectsoft-extensions-observability
Decisions ADR-0012, ADR-0015, ADR-0021, ADR-0023
Traceability FR-02 FR-04 FUX-01 FUX-03 NFR-03 NFR-13 XL-03 XL-15

Purpose and responsibilities

MarketplaceHost composes MarketplaceCatalogService (listings, search, compatibility, installation as a scoped reference) and LicenseService (pricing, acquisition against the Factory subscription, entitlements, publishers, reviews). It is a later-stage platform in the plan: the Factory must first publish assets with evidence (BC-04, ADR-0021), bill its own tenants (BC-34, D34) and operate products (D33) before distributing any of them to other organizations. The design is complete now so that nothing in the earlier platforms blocks it: listings point at Published releases, installations are scoped references in the installing tenant's registry, and money flows through the Factory's own subscription and metering.

Context and boundaries

flowchart LR
    S["MarketplaceHost"]
    StudioBff["StudioBff"] -->|sync-http| S
    S -->|grpc| ControlPlaneApi["ControlPlaneApi"]
    S -->|sync-http| ext_saas_templates["ext-saas-templates"]
    S -->|grpc| GovernanceHost["GovernanceHost"]
    S -->|grpc| KnowledgeHost["KnowledgeHost"]
    S -->|sync-http| ext_identity_platform["ext-identity-platform"]
Hold "Alt" / "Option" to enable pan & zoom

The host extends the SaaS ProductsCatalog, Entitlements and Billing foundations (the same templates the Factory's commercial context reuses) and relies on the Control plane for releases, agent cards and subscriptions, on Governance for listing policy and evidence, and on Knowledge for listing documents. Agent-to-agent discovery (ADR-0023) reads listings through the agent card service.

Domain model

None modelled

No aggregates are modelled for this item yet.

No entities modelled.

Entities and value objects

None modelled

No entities or value objects are modelled for this item yet.

Data model and storage

Store Role Engine / profile Tables
Marketplace store primary azure-sql / nhibernate-sqlserver —

None modelled

No tables are modelled for this item yet.

APIs

Method Path Operation Scope Side effects Idempotency Gateway Summary
GET /marketplace/health MarketplaceHealth factory.health.read read natural GW-01 Liveness, readiness and dependency health (marketplace store, asset publication, commercial, SaaS foundations).

None modelled

No gRPC methods are modelled for this item yet.

Messages

None modelled

No events are modelled for this item yet.

None modelled

No commands are modelled for this item yet.

None modelled

No consumed events are modelled for this item yet.

Workers and jobs

None modelled

No workers are modelled for this item yet.

Actors and grains

None modelled

No grains are modelled for this item yet.

Sagas and long-running flows

None modelled

No sagas are modelled for this item yet.

flowchart LR
    AR[AgentRegistryService · Published releases + evidence] --> C[MarketplaceCatalogService · listings]
    FL[FleetInventoryService · operated products] --> C
    C -- install → scoped reference --> AR
    L[LicenseService · pricing · entitlements · publishers] <--> C
    L <--> FC[FactoryCommercialService · subscription · metering · invoices]
    AC[AgentCardService · A2A discovery] --> C
    C & L --> SQL["(marketplace-sql)"]
Hold "Alt" / "Option" to enable pan & zoom

Options and configuration

Section Key Type Default Reloadable Secret Summary
Marketplace:Host EnabledModules string[] [catalog, licensing, publishers] no no Modules composed into this host.
OrleansMessaging ServiceName string marketplace no no Messaging profile service name.

Metrics and observability

Metric Instrument Unit Dimensions Summary
connectsoft.factory.marketplace.host.inbox_lag gauge s module Age of the oldest unprocessed event per module.

Security

Authentication client-credentials
Scopes factory.health.read (Health probes.)
Roles Operator, PlatformAdmin, Observer
Tenant isolation row-filter
Data classification internal
Max side-effect class publication
Secrets marketplace-sql (key-vault, rotate 90 d); messaging-transport (key-vault, rotate 90 d)

Dependencies

Outbound

Target Kind Purpose Failure mode Required
ControlPlaneApi grpc Published releases, agent cards, Factory subscriptions and editions. fail-fast yes
ext-saas-templates sync-http ProductsCatalog, Entitlements and Billing foundations the modules extend. fail-fast yes
GovernanceHost grpc Policy for listings; audit evidence. fail-fast yes
KnowledgeHost grpc Listing documents, screenshots and provenance as artifacts. degrade yes
ext-identity-platform sync-http Workload identity; publisher identities. fail-fast yes

Inbound

Target Kind Purpose Failure mode Required
StudioBff sync-http Marketplace views in the Assets and Software Factory work areas. — yes

Failure and recovery

Scenario Detection Recovery Data impact RTO (min)
Marketplace store lost readiness restore (RPO 15 min); listings re-derive from Published releases; entitlements re-derive from the SaaS Entitlements records none 240

NFR targets

Target Class value (pilot-batch) Override
latency_p95_ms 0 —
availability_pct 99.5 —
throughput_rps 10 —
rpo_minutes 15 —
rto_minutes 240 —
cost_class medium —

Deployment

Granularity standalone host
Topologies saas-default
Runtime aks; replicas 2–4
Ports https 8150, grpc 8152, silo 12150, gateway 31150

Current implementation

ConnectSoft.Saas.ProductsCatalog, Entitlements and Billing templates exist as foundations; nothing marketplace-specific exists.

Later capabilities

Partner-hosted listings federated through A2A agent cards; marketplace analytics for publishers; regional marketplaces per residency.

Decisions and traceability

Family Ids
FR FR-02, FR-04
FUX FUX-01, FUX-03
NFR NFR-03, NFR-13
XL XL-03, XL-15