Bounded Contexts¶
Target Architecture — Final-State Design
This page describes the final-state bounded-context decomposition of the Marketplace Platform. Each context maps to one or more ConnectSoft.Factory.Marketplace.* microservices and owns a clear slice of the marketplace domain language.
The Marketplace Platform is partitioned into seven bounded contexts. Each context has its own ubiquitous language, owns its aggregate roots and persistence, and integrates with the others only through the canonical event envelope or explicit, versioned APIs. This separation keeps publishing, commerce, compatibility, and installation independently evolvable and independently scalable for multi-tenant load.
Context map¶
flowchart TB
subgraph CatalogSearch["Catalog & Search"]
Cat["MarketplaceCatalogService"]
Srch["MarketplaceSearchService"]
end
subgraph PublishVersion["Publishing & Versioning"]
Pub["AssetPublishingService"]
Ver["AssetVersionService"]
end
subgraph CompatDeps["Compatibility & Dependencies"]
Compat["AssetCompatibilityService"]
Deps["DependencyResolutionService"]
end
subgraph Install["Installation"]
Inst["AssetInstallationService"]
end
subgraph Commerce["Commerce"]
Lic["LicenseService"]
Price["PricingService"]
end
subgraph PublisherCtx["Publisher"]
Pubr["PublisherPortalService"]
end
subgraph Reviews["Reviews"]
Rev["ReviewRatingService"]
end
PublishVersion -->|"AssetPublished / AssetVersionReleased"| CatalogSearch
PublishVersion -->|"version metadata"| CompatDeps
CatalogSearch -->|"asset selected"| CompatDeps
CompatDeps -->|"CompatibilityEvaluated"| Install
Commerce -->|"LicenseGranted"| Install
Install -->|"AssetInstalled"| CatalogSearch
PublisherCtx -->|"publisher identity & trust"| PublishVersion
Reviews -->|"ratings"| CatalogSearch
Reviews -->|"reputation signal"| PublisherCtx
Context responsibilities¶
| Bounded Context | Responsibility | Aggregate Roots | Microservices | Key Events |
|---|---|---|---|---|
| Catalog & Search | Authoritative catalog of marketplace assets and fast, faceted, tenant-scoped discovery and ranking. | MarketplaceAsset | MarketplaceCatalogService, MarketplaceSearchService | AssetPublished, AssetReviewed (consumed for ranking) |
| Publishing & Versioning | Governed submission of assets, immutable semantic versioning, and package release to distribution stores. | AssetVersion, AssetPackage | AssetPublishingService, AssetVersionService | AssetPublished, AssetVersionReleased |
| Compatibility & Dependencies | Evaluating whether an asset version fits a target environment and resolving its transitive dependency graph. | AssetCompatibility, AssetDependency | AssetCompatibilityService, DependencyResolutionService | CompatibilityEvaluated |
| Installation | Applying an asset and its resolved dependencies into a project/tenant with provenance and rollback. | AssetInstallation | AssetInstallationService | AssetInstalled |
| Commerce | Licensing, entitlement checks, and pricing plans via ConnectSoft.Extensions.Saas.Billing. |
License, PricingPlan | LicenseService, PricingService | LicenseGranted |
| Publisher | Publisher onboarding, verification, trust tiers, and portfolio analytics. | Publisher | PublisherPortalService | PublisherRegistered, PublisherVerified |
| Reviews | Trustworthy ratings and reviews feeding ranking and publisher reputation. | AssetReview | ReviewRatingService | AssetReviewed |
Context relationships¶
- Catalog & Search is the read-optimized hub. It is downstream of Publishing & Versioning (new assets/versions appear here) and Reviews (ratings adjust ranking), and upstream of Compatibility & Dependencies (a selected asset triggers evaluation). It follows a Published Language relationship: it consumes the canonical events rather than reaching into other contexts' stores.
- Publishing & Versioning is the system of record for what exists. It is the upstream supplier to Catalog & Search and Compatibility & Dependencies. Publisher acts as a supplier of identity and trust into this context (Customer/Supplier).
- Compatibility & Dependencies is a conformist consumer of version metadata; it computes evaluations and dependency graphs but does not own version truth.
- Installation is the orchestration context. It depends on Compatibility & Dependencies (must pass evaluation) and Commerce (must hold a license) before applying an asset — an anti-corruption layer translates external billing entitlements into the installation domain.
- Commerce integrates with the external
ConnectSoft.Extensions.Saas.Billingfoundation through an anti-corruption layer so that marketplace licensing reuses platform billing without coupling the domain model to billing internals. - Publisher and Reviews are partner contexts feeding trust and reputation signals across the map.
Mapping to the factory¶
Each context emits domain events into the shared event envelope, promoted to integration events where they cross platform boundaries (see Events). This lets the Knowledge Platform and Observability & Feedback platforms correlate marketplace activity with the broader factory lifecycle. Naming throughout follows Naming Conventions: services as ConnectSoft.Factory.Marketplace.{Service}, events as NounVerbPastTense, commands as VerbNoun.
Continue to Microservices for the per-service decomposition, or Aggregate Roots for the domain model in each context.