The full treasury product catalog — each product implemented as an independent Temporal child workflow.
Each product maps to an independent ProductProvisioningOrchestrator child workflow launched during Phase 5. Products are segment-gated — a case can only include products available to its segment. All eligible product workflows run concurrently via Promise.allOf().
Note: Anchita Digital Banking Portal access is provisioned in Phase 6 (Digital Banking Setup) as a platform-level operation — it is not a product workflow in the Phase 5 fan-out. All segments access the same portal; tier-based feature gating (STANDARD vs ENTERPRISE) is enforced at runtime.
Adding a New Product
Each product workflow is an independent Temporal child workflow. Adding a new product means:
Implement the child workflow class (e.g., NewProductWorkflow.java)
Add its product code to the appropriate segment sets in WorkflowConfig
Add the product to the product_catalog table (for UI product selection)
Register the workflow with the Temporal Worker
The ProductProvisioningOrchestrator does not need to change — it iterates over case.selectedProducts() and starts child workflows for any product code present in WorkflowConfig.availableProductCodes().