Commercial Dependency Graph
Architecture / contracts only.
Contract version: commercial-dependency.v1
Used by: Products, Capabilities, Bundles, Automation Packs, Extensions
1. Purpose
A unified dependency graph expresses relationships between commercial entities without embedding implementations.
2. Node kinds
node_kind |
Code space |
product |
product_code |
capability |
capability_code |
bundle |
bundle_code |
automation_pack |
automation_pack_code |
extension |
extension_code |
pricing_item |
pricing_item_code |
service |
service_identifier |
3. Edge — CommercialDependency
| Field |
Type |
Meaning |
from_kind / from_code |
|
Subject |
to_kind / to_code |
|
Object |
relation |
DependencyRelation |
See §4 |
strength |
enum? |
hard | soft |
reason |
string? |
|
effective_from / effective_to |
datetime? |
|
4. DependencyRelation
| Relation |
Meaning |
requires |
Subject cannot activate without object |
optional |
Object may enhance subject |
conflicts |
Subject and object must not both be active |
recommended |
Soft suggestion (recommendations / UX) |
deprecated |
Subject should not be used; see replacement |
replacement |
Object replaces subject |
5. Illustrative dependency matrix (examples)
| From |
Relation |
To |
Notes |
product.pay |
requires |
capability payments |
|
product.driver |
optional |
capability maps |
|
product.qr |
recommended |
capability short-links |
Future |
product.marketplace |
conflicts |
(none fixed) |
Independent |
bundle.restaurant.starter |
requires |
product.pay |
Via product ref |
bundle.restaurant.starter |
recommended |
automation_pack pack.order_sms |
Example |
product.short_link |
replacement |
(legacy link module if any) |
Future |
ext.pay.checkout_widget |
requires |
product.pay |
|
product.booking |
requires |
capability appointments |
Reserved |
6. Graph invariants
- No cycles on
requires edges (logical validation rule for future engines).
conflicts is symmetric when materialized.
replacement implies subject deprecated (recommended pairing).
- Graph stores references only — no workflow or pricing amounts.
- Unlimited nodes/edges via registry — architecture unchanged.