Relationships & Decomposition
Catalog Relationships
The power of a catalog-driven architecture comes not from individual entities, but from the relationships between them. These relationships define how products compose, how they decompose into services, and what constraints govern valid configurations. Understanding relationship types is essential for catalog design.
Catalog relationship types -- how entities connect across product, service, and resource layers
Types of Relationships
Catalog Relationship Types
| Relationship | Direction | Purpose | Example |
|---|---|---|---|
| Bundling | PO → PO | Groups offerings into packages | "Triple Play" bundles Internet + TV + Voice offerings |
| Composition | PS → PS | Defines mandatory/optional components of a product | Broadband PS includes Router component PS |
| Dependency | PS → PS | One product requires another to exist | Static IP requires an active Broadband product |
| Exclusion | PS → PS | Two products cannot coexist | Budget plan excludes Premium add-ons |
| Realisation | PS → CFS | Product is delivered by this service | Broadband PS is realised by CFS:Internet-Access |
| Decomposition | CFS → RFS | Service is implemented by these technical components | CFS:Internet-Access decomposes into RFS:GPON-Bearer + RFS:VLAN + RFS:IP |
| Resource Binding | RFS → Resource | Technical service requires this resource | RFS:GPON-Bearer requires Physical:OLT-Port |
Decomposition Rules
Decomposition is the most important relationship type. It defines how a higher-level entity breaks down into lower-level components. Decomposition rules are defined in the catalog and executed by order management systems during fulfilment.
Decomposition Cardinality
Cardinality Patterns
| Pattern | Min:Max | Meaning | Example |
|---|---|---|---|
| Mandatory | 1:1 | Exactly one required | Broadband requires exactly 1 Internet Access CFS |
| Optional | 0:1 | Zero or one allowed | Broadband optionally includes Static IP CFS |
| Multi-instance | 1:N | One or more required | Enterprise service requires 1-4 SIP trunks |
| Choice | 1 of N | Pick exactly one from a group | Choose router model: Basic OR Advanced OR Premium |
| Optional multi | 0:N | Zero or more allowed | Add any number of value-added services |
Conditional Decomposition
Real-world decomposition is often conditional — the resulting components depend on characteristic values, customer type, geography, or technology. This is where catalog design becomes powerful but also complex.
Composition vs Aggregation
Composition means the child entity cannot exist without the parent. If you delete the parent, the children are deleted too. The child's lifecycle is fully controlled by the parent.
- Product components that only exist within their parent product
- CFS characteristics that are part of a specific CFS instance
- A VLAN assignment that only exists in the context of a specific service
Dependency Management
Dependencies define ordering constraints — what must exist before something else can be created. In fulfilment, dependencies determine the activation sequence. Getting dependencies wrong leads to failed orders and rollback cascades.
Dependency-Driven Activation Sequence
Allocate Physical Port
Resource InventoryResource: OLT port must be allocated first — everything else depends on having a physical connection.
Configure Bearer
Network ActivatorRFS: GPON Bearer is configured on the allocated port. Depends on Step 1.
Assign VLAN
Network ActivatorRFS: VLAN is assigned on the bearer. Depends on Step 2.
Configure IP
DHCP/IP ManagementRFS: IP profile is applied to the VLAN. Depends on Step 3.
Activate CFS
Service InventoryCFS: Internet Access is marked active once all RFS components are complete. Depends on Steps 2-4.
Key Takeaways
- Relationships are the core of catalog power: bundling, composition, dependency, exclusion, realisation, decomposition
- Decomposition rules define how products break down into services and resources
- Cardinality (1:1, 0:1, 1:N, choice) controls what is mandatory vs optional
- Conditional decomposition allows different technical implementations from the same commercial product
- Composition = lifecycle-bound children; Aggregation = independent, shared entities
- Dependencies define activation sequence — the order in which things must be built