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"]
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)"]
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 |