Skip to content

WS 2 — Target State Architecture ​

Duration3 weeks
ObjectiveSynthesize the client's existing architectural direction, technology decisions and business requirements into a cohesive target state architecture for the future Unified Portal
DeliverablesD2.1 · D2.2 · D2.3 · D2.4 · D2.5

Tasks ​

IDActivity (SOW Schedule "A")OutputStatus
WS2-A1Establish and document guiding principles and design considerations — scalability, security, integration, reuse, maintainability, extensibilityD2.1 § Guiding principles⚪
WS2-A2Review existing target state artifacts, technology decisions and supporting documentationCarried from WS 1🟡
WS2-A3Define and document the target state architecture across all named domainsD2.1 + diagrams⚪
WS2-A4Identify architectural decisions, trade-offs, dependencies, constraints and areas requiring client decision or validationDecision log · open questions🟡
WS2-A5Create the executive-level target state architecture presentationD2.2⚪
WS2-A6Conduct working sessions and alignment discussions with lines of business IT and leadershipSession notes · D2.3 · diagram versions⚪
WS2-A7Conduct the final architecture review and executive readoutReadout record · confirmed decisions⚪
WS2-A8Review the client's API Mediation proposal against the target state — client-requested, outside Schedule "A"D2.5🟡

WS2-A3 domain sub-tasks ​

One per SOW-named domain. Each produces a section of D2.1 and, where structure is better carried visually, a diagram.

IDDomainPageDiagramStatus
WS2-A3aVision and objectivesvision-and-objectives.md—⚪
WS2-A3bTarget state overviewoverview.mdTarget state architecture⚪
WS2-A3cPortal architectureportal.mdHomepage composition (sequence)⚪
WS2-A3dApplication and platformapplication-and-platform.md—⚪
WS2-A3eIntegration and APIintegration-and-api.mdIntegration topology⚪
WS2-A3fData architecturedata.mdData and consent flow⚪
WS2-A3gIdentity and access managementidentity-and-access.mdIdentity and entitlement (sequence)⚪
WS2-A3hSecuritysecurity.md—⚪
WS2-A3iInfrastructureinfrastructure.md—⚪
WS2-A3jContent managementcontent-management.md—⚪
WS2-A3kAnalyticsanalytics.md—⚪
WS2-A3lArchitectural design patternsdesign-patterns.md—⚪
WS2-A3mRisks and considerationsrisks-and-considerations.md—⚪

Working notes ​

Where to start ​

Not at the top of the list. Three domains carry disproportionate weight, and the rest are easier to write once they are settled:

Identity and access (A3g) — because the authorization question is the most consequential unresolved item in the entire client material. Does customer identity propagate to the BU Data APIs, or does service-principal fan-out stand with compensating controls? Everything about the integration layer, the cache design and the data classification follows from that answer.

Integration and API (A3e) — because the composition pattern decision lives here, because the API landscape gives us an unusually solid evidence base to reason from, and because D2.5 has already drafted most of this domain's argument against the client's own mediation proposal. A3e should be written as the target-state form of that review rather than started from scratch.

Portal architecture (A3c) — because it is where the MVP and the target state have to be reconciled, and because the experience map has already done the zone-level work.

Decisions that will need an ADR ​

Provisional. Each needs alternatives recorded and the reason the alternatives lost — on this engagement the trade-off is the deliverable, and a decision without its alternatives cannot be defended in an executive readout.

Where a Recommendation is named, the position is already argued in recommendations/ and the ADR follows if the client accepts it.

Likely ADRThe choiceRecommendation
Composition patternSingle BFF · per-LOB micro-BFFs · federated GraphQL — and the trigger that changes itR3.1 constrains it
Authorization modelCustomer-identity propagation (token exchange / on-behalf-of) vs service-principal fan-out with compensating controlsR1.1
Relationship authorityWho issues the enterprise customer ID and masters accepted relationshipsDecided — ADR-0006: MDM is the registry, ECID is rel_id. R1.3 argues the BU event that feeds it
Aggregation boundaryWhere cross-BU aggregation happens — UI, BFF, integration layer, or a projectionR3.1
Cache design and classificationWhat is cached, keyed how, classified as what, for how long—
Degradation contractWhat the customer sees when a tile, a BU or the BFF failsR2.1
Fallback routeWhether the legacy Product Selection page survives as a bypass, and for how longR2.3
MVP forward-compatibilityWhether MVP contracts must be rel_id-swap-safe, and what that costs—
Mediation-layer traffic governanceWhether rate limiting, throttling and circuit breaking are mandatory on fan-out paths, and what the per-hop budget isR4.1
Redaction and log classificationWhat the mediation layer may copy and log, redacted how, resident whereR4.2
Inter/Intra boundary and first domainWhere the mediation boundary sits, whether the layer orchestrates, and which domain is mediated firstR4.3
Dashboard BFF runtimeThe shell's route handlers vs the standalone Fastify service already registered in APIMR5.1
Identity stack of recordWhich products constitute the identity stack, and where the enforcement point sitsR5.2
MFE integration contractBuild-time packaging vs runtime remotes, and the design system version contractR5.3
Trace contextOne propagated trace standard across the composed path, and which product owns the composed viewR5.4

The stakeholder sessions ​

A6 is where the work gets validated or does not. The format for the BU solution-architect deep dives (validation of obligations and readiness, not requirements gathering or a feasibility review) is in BU deep-dive sessions. Two mechanical notes that are easy to skip and expensive to skip:

  • Cut a diagram version at each session, labelled with something a reader recognises ("WS2 identity session") and carrying the feedback that drove the revision. The timeline at /diagrams/history/<slug> then shows what changed and whether it was structural or cosmetic. Reconstructing this afterwards is not possible — snapshots are immutable, and invented history makes the deltas lie.
  • Record disagreement as disagreement. D2.3 is more credible for containing unresolved items than for reporting universal alignment, and the material already contains a live dispute between two client functions.

The bar for our diagrams ​

Domain K of the segment assessment assesses the ADS's architecture diagram as a controlled document and finds nine defects: wrong hosting platform, no edge tier or WAF drawn, no public/private boundaries marked, components missing from a read path, components not classified new versus existing against the legend, connectors with no protocol, authentication or data classification, business units unnamed, and no depiction of the dark-launch routing mechanism.

Read as a specification, that is a good one. The same reviewers will read ours.

Internal working knowledge base — not for external distribution.