Components
Every component of the target architecture, what it is responsible for and what it is not. This page is the register; a component that needs more than a row gets its own page.
The baseline is the client's own register: §06 Technology register of the target architecture draft (UC-ARCH-002 v3, exported 2026-10-09). Where a later ruling changes a row, the row says so. ADR-0006 is the only ruling so far. Status is the draft's: Carried forward means an earlier client document already named it, Decided means the draft closed it, and Validate V-nn means it still has to pass that check before implementation. Nothing here has been validated by Konrad.
This register replaces the responsibility model in our review brief. That model had a separate relationship registry, an MDM resolution service and an identity-and-ownership projection. MDM now covers the first two, and D3 covers the third.
Enterprise systems of record
| Component | Technology | Responsible for | Not responsible for | Status | Page |
|---|---|---|---|---|---|
| Identity and relationship mastering | Informatica MDM | It is the sole issuer of rel_id, and it handles match, merge, survivorship and lineage. It is the enterprise relationship registry for accepted customer-to-product links. It is the core system of record for the mastered customer profile, and it dual-publishes every mastered outcome to both regions | Serving channel reads; originating product facts; authorization decisions | Validate V-03, V-11. Role decided by ADR-0006 | MDM |
| BU systems of record | GB, Affinity, GWAM (the draft names three) | The legal record of policies, accounts and plans. They tell MDM about customers and ownership through a MuleSoft Process API. They authorize each record against bu_subject | Enterprise identity matching; deciding enterprise visibility | Not in the register; the BU list is open question 49 | — |
| ECR / crosswalk | ForgeRock IDM | An event-fed replica of MDM's crosswalk, updated by ecr-sync | Matching or minting identifiers | Carried forward | — |
| Consent | OneTrust | The consent system of record. It supplies the projected consent facet used for visibility and a live check on every action | Identity resolution or authorization policy | Carried forward | — |
Experience and access
| Component | Technology | Responsible for | Not responsible for | Status | Page |
|---|---|---|---|---|---|
| Portal shell and micro-frontends | Next.js shell and six MFEs, Node 22 | The customer experience | Calling the serving layer or BU networks directly | Carried forward | — |
| BFF / enterprise PEP | Node 22 service | Holding sessions in Redis, validating tokens and requesting exchanges. It enforces PingAuthorize's decisions | Exposing the CIAM token to the browser, or passing Token A to a BU | Carried forward | — |
| Authentication | ForgeRock CIAM (AM) | OIDC, MFA and sessions, plus a signed JWT carrying rel_id. It is the only token issuer | Matching customers or issuing rel_id, which ciam-sync writes from MDM events | Carried forward | — |
| Customer context propagation | RFC 8693 token exchange at ForgeRock CIAM, mTLS-bound | A customer-bound token on every hop to a BU (D-15) | Querying MDM or the ECR at request time | Validate V-12, V-13 | — |
| Authorization (PDP) | PingAuthorize, self-hosted per region | Visibility and action decisions | Issuing rel_id or mastering ownership | Validate V-06 | — |
Serving and eventing
| Component | Technology | Responsible for | Not responsible for | Status | Page |
|---|---|---|---|---|---|
| D3 operational profile | Cosmos DB for NoSQL, multi-region writes | An event-fed projection of MDM that serves every channel read, so login never calls MDM | Being "a second MDM" | Validate V-10 | — |
| Profile API and projection workers | Node 22 or Java on AKS, KEDA | A governed read API, and seq-guarded writes into D3 | Mastering | Decided | Profile API |
| Cache | Azure Managed Redis, active geo-replication | Cache-aside profile reads and BFF sessions | Correctness: invalidation is per region | Decided | — |
| Messaging | Azure Service Bus Premium, one namespace per region | Registration and mastered-customer topics, with per-customer sessions and a dead-letter queue | Being the audit log | Validate V-03, V-04 | — |
| Audit and replay (D4) | Event Hubs Premium with Capture to ADLS Gen2 | The immutable journal that D3 is rebuilt from, with crypto-shredding for erasure | — | Validate V-07 | — |
Mediation
| Component | Technology | Responsible for | Not responsible for | Status | Page |
|---|---|---|---|---|---|
| API mediation | MuleSoft Anypoint on Runtime Fabric (AKS) | Experience, Process and System APIs, and translation to each BU. From v2 it also orchestrates cross-BU journeys | — | Validate V-05. Orchestration is contested in R6.3 | — |
Intelligence and next best action (§12)
| Component | Technology | Responsible for | Not responsible for | Status | Page |
|---|---|---|---|---|---|
| Intelligence Layer | Contract-first API with a guardrail runtime, on AKS | Answering questions in business language, with citations, over data products | Writing, mastering or copying data (D-17) | Validate V-16 | — |
| Semantic layer | Not chosen | Shared business definitions, versioned with ontology_v | — | Validate V-17 | — |
| Decisioning engine | Not chosen | Subscribing to events and writing next-best-action candidates, off the request path | Executing any action | Enterprise decision V-18 | — |
| NBA store | Keyed on rel_id | Candidates with rationale codes, evidence, versions and expiry | — | Validate V-19 | — |
| Model endpoints | Hosted in Canada, to be confirmed | Two named calls per request: interpret and compose | Authorizing or executing a change | Validate V-20 | — |
Platform, security and delivery
| Component | Technology | Responsible for | Not responsible for | Status | Page |
|---|---|---|---|---|---|
| Edge | Akamai: Edge DNS and GTM, App & API Protector, Bot Manager, Ion | Global 50/50 routing and region drain, WAF, bot defence, and static MFE caching | Caching authenticated HTML or /api/* | Decided | — |
| Regional ingress | Application Gateway for Containers | Gateway API, canary routes and origin lock-down | — | Decided | — |
| Compute | AKS, one private cluster per region | All custom services | — | Decided | — |
| Infrastructure as code | Terraform with Cloud-Catalog modules | One stack per regional stamp, plus a shared stack | — | Decided | — |
| CI/CD | GitHub Actions on private-network runners, Helm | Deploying the same signed digest to both regions | — | Validate V-01 | — |
| Observability | OpenTelemetry to Azure Monitor and Managed Grafana | Traces, metrics and logs, with one workspace per region | — | Validate V-08 | — |
| Security operations | Defender for Cloud, Microsoft Sentinel | Runtime protection and detection | — | Decided | — |
| Analytics | Databricks (optional) | Reading ADLS | Sitting on the request path | Carried forward | — |
Conventions
- A component page explains why the component holds its role, not how it is built. SOW Schedule "A" §3.0 puts implementation design out of scope.
- Every row cites its source. The default source is the draft's register. A row that departs from the register names the ruling or open question that changed it.
- Filename
kebab-case-component.md. Add the page to the sidebar's Components group, and link it from the row's Page column.