# Commercial Platform Architecture > **Architecture / contracts only.** No engines, migrations, APIs, or frontend portals are authorized by this document alone. > ADR: [ADR-023](adr/ADR-023.md) > Phase: `commercial-foundation` (+ patches **v1.1**, **v1.2**) > Contract family version: `commercial.v1.2` > **Status: ARCHITECTURE COMPLETE** (implementation remains future work) --- ## 1. Purpose The **Commercial Platform Foundation** defines how every TorbatYar offering is registered as a product, packaged into bundles, priced, subscribed, licensed, recommended, extended, automated (by reference), asset-backed, metadata-annotated, policy-governed, versioned, and activated for a tenant business. It is a **permanently extensible platform layer**. Future products, assets, metadata keys, and policies are **registry entries** — architecture must not require modification when they are added. --- ## 2. Ownership | Concern | Owner | Storage (future) | Notes | | --- | --- | --- | --- | | Platform Product Registry | Core Platform (commercial) | `core_platform_db` (future) | Open-ended products | | Capability Registry | Core Platform (commercial) | future | Reusable capabilities | | Automation Catalog | Core Platform (commercial) | future | **Not** a product | | Extension Registry | Core commercial vocabulary; runtime owner per extension | future | No ownership conflicts | | Asset Registry | Core commercial vocabulary; payload owner per asset | future | **Not** product/bundle/capability | | Metadata Registry | Core Platform (commercial) | future | Unlimited keys | | Policy Engine contracts | Core Platform (commercial) | future | No engine in this wave | | Dependency Graph | Core Platform (commercial) | future | Refs only | | Universal references / versioning | Core Platform (commercial) | future | Stable IDs | | Business Bundle catalog | Core Platform (commercial) | future | Lightweight refs | | Pricing Catalog | Core Platform (commercial) | future | Independent of bundles | | Subscription lifecycle | Core Platform (commercial) | future | Refs to Payment billing shells only | | License & entitlement projection | Core Platform | existing + future | L1 commercial truth | | Payment L2/L3 bundles & toggles | Payment | `payment_db` | [ADR-021](adr/ADR-021.md) | | Experience / vertical L2 packs | Owning service | service DB | Referenced, not owned here | | Marketplace domain | Marketplace product/service (when implemented) | marketplace DB | Independent; assets may declare marketplace readiness | | Published Resources / Actions / Embed | Experience + owning services | per ADR-022 | Unchanged | | Identity membership / SSO | Identity | `identity_access_db` | AuthN/AuthZ only | | Accounting commercial contract | Accounting | accounting DB | Opaque contract refs | | Admin commercial UI | Frontend (future) | — | Spec only | **Forbidden ownership:** - Frontend React as source of truth for products/bundles/pricing/assets - Payment owning Platform Product / Asset / Policy registries or Pricing Catalog - Experience owning subscription/license truth, Asset Registry, or foreign product connectors - Bundles/assets embedding implementations or pricing amounts - Treating Automation or Assets as PlatformProducts - Hardcoding closed product/capability/asset/policy enums in Core architecture - Marketplace owning Asset Registry vocabulary --- ## 3. Aggregate map (logical) — v1.2 ``` CapabilityRegistry ◄──── PlatformProductRegistry ────► ExtensionRegistry ▲ │ │ ├─ AutomationCatalog (packs; not products) │ ├─ AssetRegistry (templates/themes/…; not products) │ ├─ PolicyEngine (independent policies) │ └─ MetadataRegistry (any target) │ │ UniversalReference + RegistryVersioning │ DependencyGraph │ BusinessTypeCatalog │ recommends ▼ BusinessBundleVersion ──refs──► products, capabilities, automation packs, extensions, assets, pricing, policies, plans │ ▼ Subscription / License / Entitlement → ActivationPipeline (events) ``` --- ## 4. Separation rules (normative) 1. **Pricing MUST NOT live inside bundle, product, or asset definitions** — pricing refs / policies only. 2. **Products, assets, capabilities, policies, metadata keys are open-ended** — registry entries only. 3. **Assets are not products, bundles, or capabilities.** 4. **Automation is a catalog, not a product.** 5. **Policies are independent** — attach by target bindings; no evaluation engine in this wave. 6. **Metadata** is unlimited-key additive JSON; ignore-unknown. 7. **Extensions** declare publisher + runtime owner; assets declare publisher + optional payload owner. 8. **Marketplace** is independent; products/assets declare compatibility or marketplace readiness only. 9. **Business Bundles remain lightweight** — references only. 10. **Universal `registry_object_id`** for cross-refs — no service-specific commercial SoT IDs. 11. **All registries support versions** — [registry-versioning.md](../reference/registry-versioning.md). 12. **Recommendations never activate**; **activation is event-contracted**. 13. **Frontend catalogs are generated** from docs/YAML SoT. 14. **Future products** require only registration + capabilities + docs + optional bundle mapping (v1.1 rules). 15. **Future assets/policies/metadata keys** require only registry entries — no Core architecture changes. --- ## 5. Compatibility with existing ADRs | ADR | Compatibility | | --- | --- | | ADR-001 | Future commercial storage in Core DB only; no shared DB | | ADR-002 | Admin UI consumes contracts; backend owns truth | | ADR-003 | All commercial rows tenant-scoped when materialized | | ADR-006 | Activation / subscription transitions use outbox events | | ADR-008 / onboarding-4 | Workspace init remains Core/onboarding; commercial activation emits requests | | ADR-020 / ADR-021 | Payment L1 gated by Core; L2/L3 stay in Payment; billing shells reserved | | ADR-022 | Published Resources unchanged; assets/extensions may support presentation by ref | | ADR-023 | Base + **v1.1** + **v1.2** amendments; architecture complete for commercial foundation layer | --- ## 6. Document map | Document | Role | | --- | --- | | [product-catalog.md](../reference/product-catalog.md) | PlatformProduct aggregates | | [product-registry.md](../reference/product-registry.md) | Dynamic product registry + marketplace compatibility | | [capability-registry.md](../reference/capability-registry.md) | Reusable capabilities | | [automation-catalog.md](../reference/automation-catalog.md) | Automation types & packs (not products) | | [extension-registry.md](../reference/extension-registry.md) | Widgets, actions, embeds, … | | [asset-registry.md](../reference/asset-registry.md) | Universal assets | | [asset-lifecycle.md](../reference/asset-lifecycle.md) | Asset lifecycle states | | [asset-marketplace-contracts.md](../reference/asset-marketplace-contracts.md) | Asset distribution / marketplace readiness | | [metadata-registry.md](../reference/metadata-registry.md) | Generic metadata | | [policy-engine-contracts.md](../reference/policy-engine-contracts.md) | Policy definitions | | [policy-targets.md](../reference/policy-targets.md) | Policy target bindings | | [registry-versioning.md](../reference/registry-versioning.md) | Cross-registry versions | | [universal-reference-contracts.md](../reference/universal-reference-contracts.md) | Stable IDs | | [dependency-graph.md](../reference/dependency-graph.md) | Requires / optional / conflicts / … | | [business-bundle-contracts.md](../reference/business-bundle-contracts.md) | Bundles | | [pricing-catalog.md](../reference/pricing-catalog.md) | Pricing | | [subscription-contracts.md](../reference/subscription-contracts.md) | Subscriptions | | [license-entitlement-contracts.md](../reference/license-entitlement-contracts.md) | License / entitlement | | [activation-flow-contracts.md](../reference/activation-flow-contracts.md) | Activation events | | [commercial-compatibility-matrix.md](../reference/commercial-compatibility-matrix.md) | Compatibility validation | --- ## 7. Explicit non-goals - Backend feature engines, migrations, APIs, DB changes - Frontend portals - Implementing future products or Marketplace commerce - Policy evaluation engine, tax/discount engines - New roadmap implementation phases authorized by this patch alone --- ## 8. Architecture completeness With v1 + v1.1 + **v1.2** documented, the **Commercial Platform Foundation** is declared: ### ARCHITECTURE COMPLETE Implementation (storage, APIs, engines, admin UI, codegen) remains **future registered work** and is not authorized by accepting these contracts alone.