Contents

Quality requirements

How well the system must work: how fast, how available, how secure, how accessible and how easy to support. Targets come from the architecture or are measured from the running legacy systems.

The figures in this section come from two places: the architecture's own positions, and measurements in the Release 26.7 technical design documents. For the services that make decisions and pay benefits, the architecture does not set response-time, concurrency or availability figures. It requires them to be measured from the running legacy system and given an owner TA-C28, and this document does the same. No volume figure in the sources covers concurrency, response time or storage APP-C2, and the service-delivery procedures give none either BPCM-C3.

Performance 6

  • NFR-P-001 Must

    The capacity and response table is complete, measured and owned

    Before design freeze, every cell of the architecture's capacity table is filled in and has a named owner.

    Priority: MUST_HAVE ---

    Requirement

    Before design freeze, every cell of the architecture's capacity table is filled in and has a named owner. The table covers peak and average transactions per second, concurrent workers, annual determination volume, p95 and p99 response times, availability, recovery time and recovery point. It covers the Open Host Service, the anti-corruption layer, the determination service, the event backbone, each domain store, work management and payments.

    • Figures come from the legacy system's own telemetry over a full monthly issuance cycle, not from workshop estimates.
    • Concurrent worker numbers come from directory and session data. Determination volumes come from legacy counts per program family.
    • Response targets start from observed legacy behaviour, plus the improvement the service standard commits to.

    Measurement Method

    The table is reviewed at the design-freeze gate. Every figure must trace to a telemetry extract.

    Load Conditions

    The only volumes recorded today are per-interface and batch figures from the technical design documents APP-C1. For example, the employment-assistance monthly rollover covers about 158,414 benefit plans, 414,225 benefit lines and 73,920 orders. MIS feedback runs to about 400,000 header and 400,000 detail records a month. A CPP request file holds about 250,000 records. The predecessor's audit counted about 9,400 user accounts (TA §C.16.4). That is the number of users, not the number working at once.

    Rationale

    Nobody can responsibly approve the combined caseworker read while the legacy platform's saturation point is unmeasured. The anti-corruption layer's rate limits, circuit breakers and bulkheads are sized from these numbers (TA §C.15.2).

    Parameters

    N16 [PROPOSED], N18

  • NFR-P-002 Must

    Payment runs finish within the financial calendar

    A full monthly issuance cycle at production volume completes within the window the corporate financial calendar allows.

    Priority: MUST_HAVE ---

    Requirement

    A full monthly issuance cycle at production volume completes within the window the corporate financial calendar allows. The cycle includes assembly, pre-flight checks, approval, release, settlement intake and three-way reconciliation. If release is interrupted, it resumes and still finishes within the same window.

    Measurement Method

    A full-scale synthetic run in a production-shaped environment, including a test that interrupts release part-way (TA §C.6.8 criterion 3).

    Load Conditions

    Monthly rollover volumes as in NFR-P-001. The peak follows the issuance run, not the working day.

    Rationale

    Load on the payments service peaks with the issuance run, not over the course of the day (TA §C.15.1).

    Parameters

  • NFR-P-003 Must

    Determination capacity at measured volume and peak

    The determination service handles the measured annual determination volume for each program family and the measured peak rate.

    Priority: MUST_HAVE ---

    Requirement

    The determination service handles the measured annual determination volume for each program family and the measured peak rate. This includes recalculating every affected case in batch after a rate change. The capacity model records the headroom factor, set by its owner, the ministry CTO.

    Measurement Method

    A load test that replays a recorded month of determinations, and a rate-change simulation across the full affected population.

    Rationale

    The architecture calls annual determination volume "the single most important number" in its capacity table (TA §C.15.1).

    Parameters

  • NFR-P-004 Must

    A limit on how stale the facts behind a decision can be

    Before the first production determination, the system sets a limit on how far the evidence snapshot may lag behind the latest recorded facts.

    Priority: MUST_HAVE ---

    Requirement

    Before the first production determination, the system sets a limit on how far the evidence snapshot may lag behind the latest recorded facts. There is one limit per determination class (interactive, batch issuance and retroactive recalculation), set from measured projection lag. The system monitors the lag against the limit.

    Measurement Method

    Projection-lag telemetry for each contributing stream, with an alarm as lag approaches the limit.

    Rationale

    The architecture's example limits (seconds for interactive decisions, about a minute for batch) are unverified. The real numbers must come from measurement (TA §B.4.3).

    Parameters

  • NFR-P-005 Must

    Event backbone consumer lag

    Each consumer publishes the most lag it can tolerate.

    Priority: MUST_HAVE ---

    Requirement

    Each consumer publishes the most lag it can tolerate. The system raises an alarm at half that figure. Past the maximum, captured cohorts move to manual verification before any payment issues.

    Measurement Method

    Lag metrics for each consumer against its own threshold.

    Rationale

    When the backbone degrades, messages pile up, and a pile-up is only safe if it has a limit (TA §E.8.3).

    Parameters

  • NFR-P-006 Should

    Analytics query profile

    Interactive analytics queries must filter on a partition.

    Priority: SHOULD_HAVE ---

    Requirement

    Interactive analytics queries must filter on a partition. Service tiers are committed per data class, as decided under D5. Caching for the most sensitive class happens in memory only.

    Measurement Method

    The Module 0 object-store benchmark, and query-plan checks that reject interactive queries without a partition filter.

    Rationale

    The object store's documented profile is response times over 100 ms and 1,000 active connections per node. Partition pruning is the first lever, and local disk caching is forbidden for Protected C (TA §A.5, §C.14).

    Parameters

Availability and Resilience 11

  • NFR-A-001 Must

    Availability targets and combined availability

    Each component on the caseworker's interactive path is available 99.9% of the time.

    Priority: MUST_HAVE ---

    Requirement

    Each component on the caseworker's interactive path is available 99.9% of the time. The combined caseworker read has a design target of 99.5%. That read runs through the experience back end, the Open Host Service, three contexts and the determination service. Availability is stated per service, and the combined figure is recalculated whenever the chain of calls changes.

    • A 99.5% combined figure allows about 2¼ minutes of unplanned downtime per 7.5-hour working day [D].
    • Maintenance windows for payment services come from the financial calendar (NFR-M-007).

    Measurement Method

    Availability is measured at the contract boundary, as the consumer experiences it (NFR-M-002).

    Rationale

    Availability multiplies along a chain of dependencies, and nobody has yet done that arithmetic for this system's own chain of calls (TA §C.3.8).

    Parameters

    N16 [PROPOSED]

  • NFR-A-002 Must

    Recovery point and recovery time

    - RPO:

    Priority: MUST_HAVE ---

    Requirement

    • RPO: zero for anything that affects an entitlement or a payment, meaning determinations, payment instructions and evidence assertions TA-C29. Other data may have a stated RPO.
    • RTO: stated for each service against the harm its failure causes. Shared infrastructure takes the strictest target of anything that depends on it.
    • Recovery objectives are proven by exercise for each release train, not just stated.

    Measurement Method

    Recovery exercise results for each tier-1 component. A figure nobody has measured is not a target.

    Rationale

    A lost payment instruction is a person without money TA-C13.

    Parameters

    N16 [PROPOSED]

  • NFR-A-003 Must

    Every dependency declares its timeout, circuit breaker and fallback

    Every synchronous dependency has a declared timeout, a circuit breaker and a declared fallback behaviour.

    Priority: MUST_HAVE ---

    Requirement

    Every synchronous dependency has a declared timeout, a circuit breaker and a declared fallback behaviour. Every screen that depends on the exchange states what the worker sees, what they can still do, and what is queued.

    • Circuit breaker for external dependencies
    • Timeout on all network calls
    • Retry with backoff only for idempotent operations
    • Bulkhead isolation, including per external provider
    • Degraded behaviour documented per screen

    Measurement Method

    An architecture fitness function that checks every outbound client has a timeout and a breaker, plus tests of each fallback mode.

    Rationale

    A dependency without a stated fallback takes the caseworker desktop down with it (TA §C.15.3).

    Parameters

    N16 [PROPOSED], N18

  • NFR-A-004 Must

    Dependencies on other organisations in interactive work

    No interactive path depends synchronously on more than one external participant .

    Priority: MUST_HAVE ---

    Requirement

    No interactive path depends synchronously on more than one external participant TA-C30. Any exchange on a caseworker path that blocks the worker needs 99.9% availability, run active-active across multiple sites, with bulkheads for each provider. Where two or more participants are involved, the design is asynchronous and uses a work item.

    Measurement Method

    Call-graph analysis for each interactive journey. The exchange's availability commitment is obtained in writing (dependency DEP-06).

    Rationale

    Four participants at 99.5% each combine to 98.0%, which is too low for work a caseworker waits on (TA §C.3.8).

    Parameters

    N16 [PROPOSED]

  • NFR-A-005 Must

    Payments continue during a corporate posting blackout

    Payments keep issuing while the corporate financial system is closed for month-end or year-end posting.

    Priority: MUST_HAVE ---

    Requirement

    Payments keep issuing while the corporate financial system is closed for month-end or year-end posting. Postings wait in a queue that has an owner and an age alarm, and they are released when posting reopens.

    Measurement Method

    A blackout simulation in the M6 test cycle, plus an age alarm on queued postings.

    Rationale

    A benefit payment must not depend on a finance system's maintenance window (TA §C.6.6).

    Parameters

    N16 [PROPOSED], N17

  • NFR-A-006 Must

    Disaster recovery and business continuity are exercised

    Disaster recovery exercises run twice a year, and at least one each year is unannounced to the operations team .

    Priority: MUST_HAVE ---

    Requirement

    Disaster recovery exercises run twice a year, and at least one each year is unannounced to the operations team TA-C31. They cover catalogue restore, event backbone recovery, read-model rebuild and determination replay from the decision record store.

    The business owns a business continuity plan that is separate from rollback. It covers how an office serves a client with no system for a day and for a week, how staff record actions for later entry, and who authorises payment. It is exercised each year with the regional offices before the first capture.

    Measurement Method

    Exercise reports with measured recovery times, checked against NFR-A-002.

    Rationale

    A restore nobody has run is a hypothesis (TA §E.8.5).

    Parameters

    N16 [PROPOSED], N14

  • NFR-A-007 Must

    The child protection reporting line has its own availability target

    The 24/7 statutory child protection reporting line has the highest availability target in the platform, set by its business owner with the CIO.

    Priority: MUST_HAVE (M9) ---

    Requirement

    The 24/7 statutory child protection reporting line has the highest availability target in the platform, set by its business owner with the CIO. Its intake path depends on no service whose combined availability falls below that target. A rehearsed fallback path receives and safely records a report when downstream services are down. The line has its own change window.

    Measurement Method

    The combined-availability arithmetic is run against this chain of calls specifically, and the fallback path is rehearsed.

    Rationale

    If the reporting line is down for two hours on a Sunday, a child protection report goes unreceived (TA §C.12.2).

    Parameters

    N16 [PROPOSED], N15

  • NFR-A-008 Must

    Platform fallback modes are specified, rehearsed and owned

    Each failure below has a fallback mode that is rehearsed and has a named decision-maker:

    Priority: MUST_HAVE ---

    Requirement

    Each failure below has a fallback mode that is rehearsed and has a named decision-maker:

    • The anti-corruption layer is unavailable. Read models keep serving and show a visible staleness indicator.
    • The event backbone is unavailable. The outbox accumulates messages.
    • The determination service is unavailable. Determinations queue, and a captured cohort never falls back to legacy.
    • The exchange is unavailable. Where policy permits, determinations proceed on the evidence held and are flagged for verification after issue TA-C32.
    • The legacy platform is unavailable. Cohorts not yet captured become read-only.

    Amended v1.5 (TA §E.8.3), payments under each fallback:

    • The event backbone is unavailable. Each consumer has a published maximum lag, with an alarm at half of it. Past the maximum, captured cohorts are verified by a person before payment is issued.
    • The determination service is unavailable. Once determinations have queued for longer than the stated interval, the trigger for emergency issuance is met (FR-047).
    • The exchange is unavailable. No client's payment waits on another organisation's gateway.

    Measurement Method

    Rehearsal records for each fallback mode.

    Rationale

    A fallback mode first discovered during an incident is an outage (TA §E.8.3).

    Parameters

    N05, N16 [PROPOSED]

  • NFR-A-009 Must

    An on-premise continuity copy for any software-as-a-service product at the core

    The ministry must be able to keep its mission-critical services running if the supplier of any core software-as-a-service (SaaS) product cuts off access to it, or the product is lost for a long time for any other reason.

    Requirement

    The ministry must be able to keep its mission-critical services running if the supplier of any core software-as-a-service (SaaS) product cuts off access to it, or the product is lost for a long time for any other reason. Any recovery that depends on reaching the SaaS product at that point, such as a batch data export, fails in this case. The fallback must not need it.

    Restated 2026-09-30 under ADR-009 Part A (ACCEPTED). The programme direction of 2026-09-29 is unchanged: supplier cut-off is the contingency; the copy is retrieved continuously or on a cycle while the service is live; it serves mission-critical services only; monthly payment issuance comes first; the cut-off is rehearsed without warning. What changed is that the copy now preserves the architecture's evidence model (drift Δ2.4, Δ3.1–Δ3.7).

    • Scope by context, not by product. A SaaS product sits wholly inside one bounded context, behind that context's published contract, and exchanges only evidence and determinations with other contexts (N02, N03, N10). A product is core if losing it would stop a mission-critical service of the context it sits in. (v1.3 read: "if losing it would stop determinations, payment issuance, or caseworkers' access to case records". That wording presumed a SaaS product could hold the system of record or host determination; see Part B below.)
    • What the continuity copy is. For each core SaaS product, the ministry holds on-premise, on infrastructure it controls, a replica of records, not of state:
    • the owning context's covered event streams, with their evidence succession sets, all three time axes and the operation (Record, Supersede, Correct, Verify, Invalidate) preserved, verified against the hash chain and signed heads (NFR-SEC-009);
    • the decision-record store;
    • the rules artefacts and engine images;
    • projections rebuilt from those.

    A vendor table snapshot, a CRUD change-data-capture feed or a CSV extract does not conform unless it is transformed, at capture, into the owning context's registered events with all three time axes and the operation preserved. (v1.3 read: "a copy of a defined core subset of the product's data".)

    • Kept current while the service is live. The copy is retrieved continuously or on a stated cycle while the service is available. Its maximum age may not exceed the batch watermark bound (FR-009, NFR-P-004); otherwise a separate fallback bound is recorded and stamped on every determination made in fallback.
    • What the copy is for. The copy supports the mission-critical services only, not every service. The ministry defines and owns the list of mission-critical services and the records each one needs.
    • Payments come first. The first mission-critical service is monthly payment issuance: determining, issuing and reconciling the monthly payment run. Its fallback is designed, built and rehearsed before any other.
    • Fallback runs the same function. Determinations made in fallback run the same Determine(), with the five bound artefacts and the watermark (FR-001, FR-008, FR-009). Payments made in fallback go through the same controls as normal payments (FR-042, FR-046).
    • One writer at every moment. Switching to fallback is a recorded single-writer handover per context and per cohort (N05). Events written in fallback are appended to the authoritative streams when service returns, never merged (FR-098). Payment instruction identifiers keep their FR-042 derivation, so an entitlement cannot be paid twice across the switch. (v1.3 read: "reconciled if and when service is restored or replaced", which is the both-write-then-reconcile pattern N05 forbids.)
    • The copy is a registered derivative. It is subject to correction propagation, use constraints, disposition and cryptographic erasure like any other copy (DR-004, DR-006, DR-007).
    • Plan details for each product. The continuity plan (NFR-A-006) states the copy's maximum age, when a loss of service counts as protracted, who decides to switch to the fallback, and who decides to switch back.
    • Products that cannot be core. A SaaS product cannot be a core element if the records above cannot be retrieved continuously or on a cycle while the service is running, or if its function cannot run outside the supplier's service. (Function portability restored from v1.2; v1.3 removed it without a changelog entry, drift Δ3.4.)

    What this requirement does not authorise (ADR-009 Part B, PROPOSED). NFR-A-009 is a continuity requirement. It does not by itself authorise any SaaS product to store Protected C data, to hold the system of record, or to host determination. Each of those needs a recorded relaxation by its named authority: storing Protected C data or holding the system of record needs A.3 commitment 5, agreed jointly by the Ministry Privacy Officer, the provincial CISO and the Ministry Records Officer (a reclassification question under D12; TC-1, NFR-C-004); hosting determination needs A.3 commitment 2, agreed jointly by the Chief Architect and the ADM Policy and Program Design (FR-090; NFR-I-006). Until such a relaxation is recorded, a SaaS product may be core only where its data stays below Protected C, or it holds a projection whose system of record is on-premise, and it does not host determination.

    Measurement Method

    A rehearsal is recorded for each core SaaS product, as for NFR-A-008. In the rehearsal, access to the product is cut off without warning, and the mission-critical services run from the continuity copy alone. The rehearsal verifies the copy against the hash chain, runs fallback determinations through the same Determine(), and on return appends the fallback events without a merge. The monthly payment run is rehearsed first, at production volume, before that SaaS product goes live.

    Rationale

    If a supplier withdraws access, the source system is offline by construction, so nothing can be exported from it at that point. A client's monthly payment is still due on a set date. Programme direction, 2026-09-29, recorded as ADR-009 Part A. The copy must preserve the evidence model, because a state replica loses succession sets, the three time axes, the difference between Supersede and Correct, registered schemas and hash-chain continuity, and a fallback built on it could not produce a defensible determination.

    Relates To

    Parameters

    N16 [PROPOSED], N05, N03, N01, N17

    Decision

    ADR-009 (Part A ACCEPTED; Part B PROPOSED)

  • NFR-A-010 Must

    Child protection work done at any hour can be recorded and approved at any hour

    NFR-A-007 covers receipt of a report on the reporting line.

    Priority: MUST_HAVE (M9) ---

    Requirement

    NFR-A-007 covers receipt of a report on the reporting line. This requirement covers the work that follows it and runs on limits counted in hours or from the moment a person is informed. Outside office hours and away from the office, a worker can screen a report and a supervisor can approve the screening; contact an Indigenous authority, record its confirmation and refer a report; record a safety assessment, a verbal safety plan agreement and a withdrawal from one; record that a child was taken charge of or removed, with the start time, the efforts to reach a parent and the supervisor's approval; and write, approve and send a reportable circumstance report. When the system is unavailable, an entry made afterwards carries the time each act took place, and no start time is lost.

    Measurement Method

    The availability target for these functions is set by their business owner with the CIO and measured for evenings, weekends and holidays apart from office hours. A rehearsal takes the system down during a taking charge and shows that the start time and the approval are recorded afterwards with their true times.

    Rationale

    The Act requires a prompt report, policy requires an immediate screening assessment in a dangerous situation, taking charge runs on limits counted in hours, and the reportable circumstance limit runs from being informed with no stated allowance for weekends or holidays (CL-D1-022, CL-D1-023, CL-D7-160, CL-D1-018, CL-D1-019, CL-D1-042, CL-D1-051, CL-D1-059, CL-D1-060, CL-D1-131, CL-D7-211, CL-D1-118, CK-QA1-07, CK-QA1-08, CK-QA1-09). The standards for delegated agencies require an on-call service with access to a supervisor at all times, subject to DEP-29. Needed by FR-122, FR-123, FR-145, FR-160, FR-165, FR-166, FR-180, FR-182 and FR-338.

    Parameters

  • NFR-A-011 Should

    Youth justice records are made at any hour

    A custody centre runs day and night.

    Priority: SHOULD_HAVE (conditional on DEP-28) ---

    Requirement

    A custody centre runs day and night. The system is available for custody records through nights, weekends and holidays, or takes entries made after the event with the time each act took place. This covers the restraint log and its intervals, the use of force notice, the health care assessment after a restraint, an emergency medical leave approved in the centre Director's absence, a serious complaint made after hours to the on-call youth custody director, a warrant of suspension sought by police out of hours, and the provincial director's review for a youth detained on a weekend.

    Measurement Method

    The availability target for custody functions is set by their business owner with the CIO and measured across all hours. A rehearsal records a restraint during an outage and shows each interval entered afterwards with its true time.

    Rationale

    The restraint intervals, the use of force notice and the health care assessment run in minutes and hours, and policy sends out-of-hours warrants, reviews and serious complaints to an on-call manager or director (CL-D3-157, CL-D3-161, CL-D3-163, CL-D3-166, CL-D4-129, CL-D4-130, AU-YJ3-12, OB-YJ2-78). Needed by FR-427, FR-458, FR-462 and FR-469 to FR-471.

    Parameters

Scalability 3

  • NFR-S-001 Must

    Scale to caseload and payment-run peaks

    Services scale horizontally, without code changes, to the measured peaks in NFR-P-001 to NFR-P-003.

    Priority: MUST_HAVE ---

    Requirement

    Services scale horizontally, without code changes, to the measured peaks in NFR-P-001 to NFR-P-003. The capacity model records growth projections for caseload and determination volume, set by its owner.

    Growth Projections

    None of the sources give any. The capacity model's owner (the ministry CTO, with the operations directorate) records them before design freeze.

    Measurement Method

    A scale test to the recorded headroom factor.

    Rationale

    Scale depends on the number of people served, not on the legacy system, so today's volumes are a minimum.

    Parameters

    N16 [PROPOSED]

  • NFR-S-002 Must

    Data volume across decades of retention

    Stores can be partitioned by retention class from the first event, and are sized to keep records for decades.

    Priority: MUST_HAVE ---

    Requirement

    Stores can be partitioned by retention class from the first event, and are sized to keep records for decades. The current system keeps child services records for up to 90 years after closure and investigation records for 15 years (APP §6). Records are disposed of by class when their schedule expires.

    Data Archival Strategy

    Set per fact class under DR-004. The default is disposal of a whole class on schedule. Large, loosely structured content uses reference-based indirection. Per-subject cryptographic erasure applies only to named classes. Archival transfer applies where required.

    Rationale

    Partitioning by retention class must be in place from the first event (TA §B.7.1).

    Parameters

  • NFR-S-003 Must

    Migration and backfill at cutover volumes

    Migration, identity matching and backfill run, re-run and reconcile at cutover volumes within agreed windows.

    Priority: MUST_HAVE ---

    Requirement

    Migration, identity matching and backfill run, re-run and reconcile at cutover volumes within agreed windows. The design documents record matching-key volumes of about 15 million contact aliases, 35 million service-provider keys in the corporate accounting system, 1 million service-provider keys and 8 million contact-matching keys.

    Measurement Method

    A full-volume migration rehearsal that passes the quality gates in DR-012.

    Rationale

    Migration is a product with its own quality gates, not a project task (TA §C.2.8).

    Parameters

Security 15

  • NFR-SEC-001 Must

    Authentication

    All users sign in through the provincial single sign-on service using OIDC.

    Priority: MUST_HAVE ---

    Requirement

    All users sign in through the provincial single sign-on service using OIDC.

    • Staff: the corporate directory, with its multi-factor authentication.
    • Citizens: the BC Services Card authentication service, at identity assurance level 3.
    • Businesses and providers: BCeID Basic and Business.
    • Browser security: each experience has a back end for front end that holds the confidential client. No access token, refresh token or identity assertion reaches storage the browser can read TA-C33.
    • Session and re-authentication rules follow the provincial service's policy and are recorded for each experience.

    Measurement Method

    A security architecture review at each module gate, plus an automated check that no token reaches the browser.

    Rationale

    Identity is a commodity and is reused as it is (TA §B.6.1; commitment 8).

    Parameters

  • NFR-SEC-002 Must

    Access rules written as tested code

    Program confidentiality rules and API access rules are versioned, tested policy artefacts.

    Priority: MUST_HAVE ---

    Requirement

    Program confidentiality rules and API access rules are versioned, tested policy artefacts. A policy engine evaluates them, and they are released through the same pipeline as eligibility rules. Access is checked at every resolver and endpoint, on both the links and the records of the graph. A restricted client record is a separate type, not an empty field on a normal record. Every access decision is logged with who, what, the purpose and the legal basis.

    Measurement Method

    A policy test corpus in CI, where a policy change that reduces coverage fails the build. Graph tests confirm that a restricted record's existence cannot be inferred from empty fields.

    Rationale

    In child protection, the fact that a record exists is often the sensitive fact (TA §B.6.2).

    Parameters

  • NFR-SEC-003 Must

    Access rights are generated, never granted by hand

    Access rights come from role definitions and program assignments held in a system of record, and automation applies them.

    Priority: MUST_HAVE ---

    Requirement

    Access rights come from role definitions and program assignments held in a system of record, and automation applies them. Manual grant is not a supported operation TA-C34. Every role definition has a named owner and an expiry date. The system publishes a count of accounts holding rights that the access model does not explain, with a target of zero. Access reviews run every quarter for standard roles and every month for elevated and restricted-record access.

    Measurement Method

    Accounts reconciled against the access model and published every cycle.

    Rationale

    The predecessor's audit found that more than a third of about 9,400 users had access outside the defined model, and that nobody was checking (TA §C.16.4).

    Parameters

  • NFR-SEC-004 Must

    Active access monitoring and restricted-record controls

    The system watches access patterns for anomalies, such as records outside the assigned caseload, out-of-hours restricted access and unusual volumes.

    Priority: MUST_HAVE ---

    Requirement

    The system watches access patterns for anomalies, such as records outside the assigned caseload, out-of-hours restricted access and unusual volumes. Alerts go to a monitored queue with an SLA. Staff must record a business reason before opening a restricted or active-protection record. Break-glass access exists, is logged, and is reviewed within one business day. Restricted-record access is logged separately and can raise its own alerts.

    Measurement Method

    SLA metrics for the monitoring queue, plus sampled reviews of break-glass events.

    Rationale

    In a social-services breach, the people most at risk are those under active protection (TA §C.16.2).

    Parameters

  • NFR-SEC-005 Must

    Encryption and key management

    - Data in transit:

    Priority: MUST_HAVE ---

    Requirement

    • Data in transit: TLS everywhere, with mutual TLS between exchange participants.
    • Data at rest: encrypted in every store, backup and document store. Per-subject payload encryption applies only to fact classes assigned cryptographic erasure.
    • One key inventory records, for each key, the custodian role, how it is held, how it is rotated, how it is destroyed, and what becomes unreadable if it is lost.
    • Per-subject data keys are wrapped by a master key in a hardware security module or the platform key service. They are never exported in plaintext and never held in escrow. The wrapping key rotates once a year.

    Measurement Method

    The key inventory is reviewed at each gate. Destruction is verified by showing that a known ciphertext can no longer be decrypted.

    Rationale

    A key whose loss makes twenty years of determinations unverifiable needs different handling from one whose loss only means reissuing a certificate (TA §C.16.3, §B.7.3).

    Parameters

  • NFR-SEC-006 Must

    Secrets management

    No secret appears in code, configuration, design documents or logs.

    Priority: MUST_HAVE ---

    Requirement

    No secret appears in code, configuration, design documents or logs. Secrets are kept in the platform secrets service. No connection uses clear-text authentication.

    Measurement Method

    Secret scanning in CI and across document repositories, plus a credential inventory.

    Rationale

    The platform already provides secrets management, and the system reuses it (TA §C.18).

    Parameters

  • NFR-SEC-007 Must

    Vulnerability management and penetration testing

    - SBOM generation, licence scanning and vulnerability scanning block builds in CI, across the whole platform.

    Priority: MUST_HAVE ---

    Requirement

    • SBOM generation, licence scanning and vulnerability scanning block builds in CI, across the whole platform.
    • An independent tester runs a penetration test at each module gate. It covers what changed, plus a standing set of identity, access and exchange-edge tests.
    • Remediation: critical findings are fixed, or formally risk-accepted by a named executive, before the gate closes. High findings are fixed within 30 days with a tracked plan. Medium findings are fixed within 90 days. Low findings go into the backlog with an expiry date TA-C35. Risk acceptances expire after 90 days.

    Measurement Method

    Gate evidence. An open critical finding means the gate fails.

    Rationale

    A finding without a fix date is an open finding (TA §C.16.1).

    Parameters

  • NFR-SEC-008 Must

    Threat models and incident response

    Each bounded context has a threat model before its first production release.

    Priority: MUST_HAVE ---

    Requirement

    Each bounded context has a threat model before its first production release. The model is revised whenever trust boundaries, external interfaces or data classification change. An incident response runbook and severity model exist before the first production release, and are exercised at least once a year.

    Measurement Method

    Both are required artefacts at the release gate.

    Rationale

    No threat model, no production release (TA §C.16.1).

    Parameters

  • NFR-SEC-009 Must

    Records that show if they have been tampered with

    The decision record store, the event backbone and the access-decision stream are hash-chained.

    Priority: MUST_HAVE ---

    Requirement

    The decision record store, the event backbone and the access-decision stream are hash-chained. Chain heads are signed and kept separately from the store, under different administrative control. An offline verifier can check integrity without the live systems.

    Amended v1.5 (TA §B.5.5 item 6): the covered streams are named, and for money they are: the payment instruction and disbursement streams of Payments & Benefit Issuance; the double-entry event log of Financial Components; and the assessment, agreement and write-off streams of Overpayment & Recovery. None of these is left to a later judgement of where integrity matters.

    Measurement Method

    A job that verifies the chain, plus a tampering simulation in test.

    Rationale

    Records examined years later need integrity designed in, not assumed (TA §C.4.4, §B.5.5).

    Parameters

  • NFR-SEC-010 Must

    Evidence of exchanges with other organisations

    The system reaches four evidence tiers for cross-organisation exchange:

    Priority: MUST_HAVE (E1, E2) · SHOULD_HAVE (E3) · COULD_HAVE (E4) ---

    Requirement

    The system reaches four evidence tiers for cross-organisation exchange:

    • E1, in place before the first production exchange: every request and response is logged with participant, agreement, legal basis, purpose, correlation identifier, timestamp and hashes of the message bodies.
    • E2, at launch: the log is hash-chained, and signed chain heads are kept independently.
    • E3, within the first year: chain heads get trusted timestamps.
    • E4: each message is signed, for a named class of disclosures agreed with legal counsel.

    Measurement Method

    Exchange log records checked against the schema, plus chain verification.

    Rationale

    A message exchanged before E1 is in place leaves no evidence, ever TA-C36.

    Parameters

  • NFR-SEC-011 Must

    Every entry path is checked the same way

    Aggregates enforce their own rules, and no integration, batch load, migration script or write-back path gets around them.

    Priority: MUST_HAVE ---

    Requirement

    Aggregates enforce their own rules, and no integration, batch load, migration script or write-back path gets around them. Any write path that skips validation needs a written decision that names each skipped check and what makes up for it.

    Measurement Method

    Tests that send invalid commands through every entry path, plus an inventory of written bypass decisions.

    Rationale

    A rule the aggregate enforces cannot be skipped by an integration, a batch load or a migration script (PRIN N04).

    Parameters

  • NFR-SEC-012 Must

    Personal information outside production

    Development, test and training environments use synthetic or de-identified data.

    Priority: MUST_HAVE ---

    Requirement

    Development, test and training environments use synthetic or de-identified data. The shadow-comparison pipeline processes real personal information, so it is classified, retained and disposed of under the same rules as the main store.

    Measurement Method

    Classification scans of non-production stores.

    Rationale

    Comparison records must not become an uncontrolled second store of client-affecting evidence (TA §C.2.7, §E.7.2).

    Parameters

  • NFR-SEC-013 Must

    Access follows the service line and the Act that governs the record

    Access rules for children and family services are written per service line and tested as code (NFR-SEC-002).

    Priority: MUST_HAVE (M0 schema, M9) ---

    Requirement

    Access rules for children and family services are written per service line and tested as code (NFR-SEC-002). A support needs worker delivering a service outside the CFCSA mandate cannot open child protection or other CFCSA records. A child protection worker cannot open a family's support needs record. Information passes between the two only on a recorded basis: consent, or a request under the Act. The Act that governs each record is recorded on it and decides who may see it. Psychological test data is open only to qualified test users. Within an integrated team, a declined consent to share limits reading to the serving member and the people policy names, and a clinical note is never readable through the shared view. During a pending transfer the receiving office has read access, so access follows the state of the transfer and not office membership alone. Every director and delegate, delegated agencies included, can read every community agreement.

    Measurement Method

    An automated test for each pair of service lines attempts to open the other's records and is refused, and each refused attempt appears in the access log (NFR-SEC-004). The test set is run on every release.

    Rationale

    Policy bars access across the support needs and child protection lines in both directions and sets the other limits (CL-D6-026, CL-D6-027, CL-D6-028, CL-D1-106, R-RX1-06, CL-D5-157, CL-D5-158, R-IC1-15, CL-D5-109, CL-D7-008, R-MH2-42). An access rule that does not exist before the first record is written leaves earlier records open. Needed by FR-117, FR-118, FR-289, FR-291, FR-377, FR-389, FR-395 and FR-398. The access rule for mental health clinical records is described only in a user manual, so the ministry should state it as policy first (R-MH1-41, AU-MH1-20). The mental health and integrated team parts are conditional on DEP-26 and DEP-27.

    Parameters

  • NFR-SEC-014 Must

    An access bar on a person holds against every role that person has

    Where a staff member is also the subject of a record, the bar follows the person and not the role.

    Priority: MUST_HAVE ---

    Requirement

    Where a staff member is also the subject of a record, the bar follows the person and not the role. An employee who is a foster caregiver cannot open records relating to the children they foster, whatever role they hold, and decisions on their own foster care arrangement go to a director of operations outside their chain of command. An employee does not serve, as an employee, a person recorded as one they have seen in private counselling work. A report of a search, a refusal or a detention of a staff member cannot be read by that person's peers or from a youth's file. People with permission to see information but no authority to act, such as those in a practicum category of delegation, can read and cannot record a director's act. Staff who review records for a prior contact check, an audit or a foster caregiver review are given access limited to the person or the evaluation named, and each access records that purpose.

    Measurement Method

    Tests give one person two roles and show that the bar holds in each. Refused attempts are logged and reviewed (NFR-SEC-004). A sample of review and audit accesses is checked against the consent or the evaluation scope on record.

    Rationale

    The ministry's guidance requires these safeguards where it permits an employee to foster or to do private counselling work, and policy scopes access for checks and audits (OB-RF1-40, OB-QA1-22, CL-D2-009, RC-GU1-06, CL-D1-006, CL-D3-169, CL-D3-170, CL-D3-171, CL-D3-172). Needed by FR-107, FR-226, FR-229, FR-345, FR-347 and FR-472. The custody search records are conditional on DEP-28. Practice guidance also restricts staff members' own homestudies further (R-AD4-13), which is to confirm against current policy.

    Parameters

  • NFR-SEC-015 Must

    What a person may learn about the existence of a record is itself an access rule

    The system sets, for each record class, whether a person without access to the content may learn that a record exists.

    Priority: MUST_HAVE ---

    Requirement

    The system sets, for each record class, whether a person without access to the content may learn that a record exists. A person search by a support needs worker shows that a record exists without opening it. A safety alert and its recommended actions are shown to all staff who meet the child, youth or family, including staff who cannot see the clinical record behind it. A safety plan agreement, its copies and its notices are visible only to the parties to that agreement, so that an agreement made with one parent alone need not be made known to the other where domestic violence is a factor. Any record class can be restricted, contact and identity records included, and a restricted record is open only to the limited group policy names.

    Measurement Method

    For each record class a test signs in as a person without content access and compares what the search, the alert view and the notice list show against the rule registered for that class.

    Rationale

    Policy sets each of these visibility rules (CL-D6-027, CL-D6-028, OB-MH2-15, CL-D5-007, CL-D1-062, CL-D8-001, CL-D8-006). Needed by FR-164, FR-291, FR-299 and FR-351. The alert rule is conditional on DEP-26.

    Parameters

Compliance and Regulatory 9

  • NFR-C-001 Must

    Privacy compliance and breach readiness

    Freedom of Information and Protection of Privacy Act;

    Priority: MUST_HAVE ---

    Applicable Regulations

    Freedom of Information and Protection of Privacy Act; the ministry's FOIPPA policy.

    Compliance Requirements

    • Collection limited to what is necessary (FR-076); disclosure starts from the legal basis (FR-077)
    • Access and correction rights supported (FR-079, FR-081)
    • Privacy impact assessment complete for each context before its gate, alongside the security assessment (NFR-C-006)
    • "Whose personal information was accessed, by whom, and when" answerable with a query, not an investigation
    • Correlation identifiers carried across every boundary, so a breach that spans legacy, the layer and a new context can be traced

    Data Residency

    Canadian data centres, per provincial cloud policy. Protected C storage per NFR-C-004.

    Rationale

    The duty to notify runs on a "without unreasonable delay" standard, so the time from detection to assessment is the control that matters (TA §C.16.2).

    Parameters

  • NFR-C-002 Must

    What the audit log records, and how long it keeps it

    Each audit event records who (user or service), what, when (UTC), where (component), why (purpose, legal basis, correlation identifier) and the result.

    Priority: MUST_HAVE ---

    Requirement

    Each audit event records who (user or service), what, when (UTC), where (component), why (purpose, legal basis, correlation identifier) and the result. Retention follows the records classification and the appeal window, not the platform defaults of two months for system logs and thirteen months for audit logs TA-C37. Retention is set before the first production audit log is written. Log content is treated as personal information.

    Log Integrity

    Rationale

    Retention that was never applied cannot be applied after the fact (TA §C.17.2).

    Parameters

  • NFR-C-003 Must

    Records retention and disposition

    Before the first production event, the system decides disposition for each fact class (DR-004).

    Priority: MUST_HAVE ---

    Requirement

    Before the first production event, the system decides disposition for each fact class (DR-004). That covers the mechanism, the published shred-survivor set, key custody, how destruction is verified, and what replay does with disposed data. Replay substitutes a typed tombstone. It never fails and never skips. Each disposition is certified, and afterwards the financial control totals still reconcile to the same values TA-C38.

    Rationale

    The authority for N12 is the Information Management Act and the ARCS/ORCS schedules, and neither has been acquired yet OBLG-C2.

    Parameters

  • NFR-C-004 Must

    Classification and where data is kept

    Protected C data is stored only on-premise.

    Priority: MUST_HAVE ---

    Requirement

    Protected C data is stored only on-premise. It may be processed on the general compute tiers, within the D12 decision on what counts as storage TA-C39. No Protected C data is processed or stored in public cloud. Public cloud workloads, in Canadian regions only, use only de-identified, aggregated, synthetic or differentially-private derivatives (D6). Access by support staff and vendor telemetry from outside Canada count as disclosure.

    Measurement Method

    An inventory of where each store and derived artefact is placed. Node settings in the sensitive pool, with swap and core dumps turned off, are verified.

    Rationale

    Legacy data counts as Protected C by inheritance until it is reclassified (commitment 5). A core software-as-a-service product is bound by this requirement; NFR-A-009 does not relax it (ADR-009 Part B).

    Parameters

  • NFR-C-005 Must

    Automated administrative decisions

    Every class of automated determination is classified, registered and authorised under FR-003 and FR-093.

    Priority: MUST_HAVE ---

    Requirement

    Every class of automated determination is classified, registered and authorised under FR-003 and FR-093. Every adverse determination gives reasons that trace to a rule and a fact. It also carries a recourse notice stating what may be challenged, by when, how, and what happens to payment in the meantime.

    Measurement Method

    The random-sample reconstruction test in TA §C.8.5, run each cycle.

    Rationale

    Every determination that harms a person's interests is an administrative decision, and carries a duty to give reasons and a right of recourse (TA §A.7 risk 6).

    Parameters

  • NFR-C-006 Must

    Privacy, security, accessibility and records evidence at every gate

    A context is not captured until four pieces of evidence are complete:

    Priority: MUST_HAVE ---

    Requirement

    A context is not captured until four pieces of evidence are complete: its privacy assessment; its security assessment (threat model, review, penetration test and tested incident runbook); its accessibility conformance evidence, including manual testing; and its records disposition classification (TA §E.10 items 7–9).

    Measurement Method

    The gate checklist.

    Rationale

    The architecture holds that a definition of done covering privacy but not security fails (TA §E.10).

    Parameters

  • NFR-C-007 Must

    Alignment with the Declaration on the Rights of Indigenous Peoples Act

    The ministry's Indigenous relations function confirms which action-plan commitments apply to this system.

    Priority: MUST_HAVE ---

    Requirement

    The ministry's Indigenous relations function confirms which action-plan commitments apply to this system. Each commitment is traced to the registry features that carry it: the participant class, the legal-basis vocabulary, the custodianship attribute and the transfer outcome (FR-084, FR-085).

    Measurement Method

    A traceability review by the Indigenous relations function.

    Rationale

    The architecture has not verified which commitments apply, and they must be recorded (TA §B.8.4).

    Parameters

  • NFR-C-008 Must

    Financial administration

    The corporate financial system remains the book of record.

    Priority: MUST_HAVE ---

    Requirement

    The corporate financial system remains the book of record. Five items are Comptroller and CFO sign-off points, held as configuration under change control: the delegated authority schedule, run approval thresholds, the month-end position, write-off thresholds and the decision to invoke emergency issuance.

    Measurement Method

    A configuration audit and the sign-off records.

    Rationale

    Each is a financial control and belongs in governed configuration, not as a constant written into a deployment (TA §C.6.5).

    Parameters

  • NFR-C-009 Must

    Channel limits that policy sets are applied to each kind of content

    Each outbound channel checks the kind of content it is asked to carry against the limits policy sets, held as versioned data.

    Priority: MUST_HAVE ---

    Requirement

    Each outbound channel checks the kind of content it is asked to carry against the limits policy sets, held as versioned data. A notice emailed to a parent, a care provider or an Indigenous governing body is encrypted and password protected. No channel carries proposal package content by email or fax unless the ministry approves that channel. A message about the mental health waitlist keeps identifying and clinical information out of text messages. No monitoring or reading entry can be made for a youth's communication with a privileged person, and any exception to that privacy is documented with notice to the privileged person.

    Measurement Method

    A test sends each restricted kind of content through each channel and shows that the barred combinations are refused and logged, and that the allowed ones carry the protection policy requires.

    Rationale

    Policy sets each limit because of the risk to privacy if the content goes astray (OB-IN1-58, R-AD2-21, OB-AD2-24, R-MH3-76, CL-D3-187, CL-D3-190, CL-D3-191). Needed by FR-136, FR-245, FR-367, FR-476 and FR-477. The waitlist and custody parts are conditional on DEP-26 and DEP-28.

    Parameters

Usability 5

  • NFR-U-001 Must

    Workers' tasks do not get slower

    Before each context's gate, the ten most common work item types take no longer, and need no more screens or system switches, than the legacy baseline.

    Priority: MUST_HAVE ---

    Requirement

    Before each context's gate, the ten most common work item types take no longer, and need no more screens or system switches, than the legacy baseline. This is measured with real workers on realistic data. Workers' confidence in the system's answers and the time a new worker takes to become competent are measured and published.

    Measurement Method

    A baseline captured before the context's build begins TA-C12, then acceptance measurement for each office.

    Rationale

    A capture that makes a top task slower is a defect. Only a named executive can override this go-live criterion, in writing (TA §E.9).

    Parameters

  • NFR-U-002 Must

    Accessibility

    The system meets WCAG 2.2 Level AA at first release .

    Priority: MUST_HAVE ---

    Requirement

    The system meets WCAG 2.2 Level AA at first release TA-C40. Conformance evidence follows the clause tables of the harmonised ICT standard. Each component has accessibility acceptance criteria in the repository. Each release has an assistive-technology test matrix with manual test evidence. A published conformance ledger for each component covers cross-element ARIA association and the minimum browser version it relies on.

    Accessibility Features

    • Keyboard operation for all functions
    • Screen reader compatibility, tested manually
    • Cross-element ARIA association checked across component boundaries
    • Accessible alternative formats for notices (FR-065)
    • Accessibility defects accepted as a valid reason for a breaking change

    Testing

    Automated checks in CI act as a gate but catch only about 30% of issues, so funded manual testing is also required.

    Rationale

    Provincial policy commits to WCAG AA. An ICT standard is expected, and evidence built this way can be re-filed rather than re-tested when it arrives (TA §C.5.7).

    Parameters

  • NFR-U-003 Must

    Language and plain language

    Client-facing content meets a published readability standard and is available in every language the ministry is obliged to use.

    Priority: MUST_HAVE ---

    Requirement

    Client-facing content meets a published readability standard and is available in every language the ministry is obliged to use. The Chief Digital Officer, with legal counsel, confirms those obligations and the standard by the end of the foundation module.

    Rationale

    Plain language is a fairness control (TA §C.10.4).

    Parameters

  • NFR-U-004 Must

    Supported browsers and assistive technology

    The list of supported browsers and assistive technologies is recorded before the first shared interface component is published.

    Priority: MUST_HAVE ---

    Requirement

    The list of supported browsers and assistive technologies is recorded before the first shared interface component is published. Each component records the minimum version its accessibility fixes rely on.

    Rationale

    That list decides whether the basic components can use shadow roots at all (TA §C.5.7).

    Parameters

  • NFR-U-005 Should

    Consistent interface components, in tiers

    Screens are built from a tiered component library, with rules enforced in CI.

    Priority: SHOULD_HAVE ---

    Requirement

    Screens are built from a tiered component library, with rules enforced in CI. Presentational components are owned centrally and make no network calls. Connected components are owned by the domain that owns their contract. Accessibility-critical logic sits in the lower tiers. The provincial design system is used behind a facade.

    Rationale

    A component that carries both presentation and a data contract turns into an enterprise data dictionary by the back door (TA §C.5; decision D4).

    Parameters

Maintainability and Supportability 7

  • NFR-M-001 Must

    Tracing requests across the whole platform

    One instrumentation standard covers components on and off the platform;

    Priority: MUST_HAVE ---

    Requirement

    One instrumentation standard covers components on and off the platform; OpenTelemetry is the candidate. One correlation identifier travels through every hop: browser, experience back end, contract, layer, legacy, outbox, backbone, context, store and exchange. Naming conventions for domain concepts are owned alongside the published language.

    Telemetry Requirements

    Structured logs; RED metrics (rate, errors, duration); distributed tracing that can be joined across both telemetry systems; dashboards for SLOs, queues and reconciliation.

    Rationale

    Without this, "where did this determination's evidence come from" and "who was affected" have to be pieced together by hand (TA §C.17).

    Parameters

  • NFR-M-002 Must

    Service level objectives at the contract boundary

    Each context publishes SLOs for its contract:

    Priority: MUST_HAVE ---

    Requirement

    Each context publishes SLOs for its contract: availability, p95 and p99 latency, and error rate. They are measured at the contract boundary, with error budgets derived from the tier availability figures.

    Rationale

    An SLO measured inside a service only describes the service. An SLO measured at the contract describes what the consumer gets (TA §C.17.1).

    Parameters

    N16 [PROPOSED], N18

  • NFR-M-003 Must

    Exception queues and reconciliation are monitored like everything else

    The human reconciliation, adjudication and write-back exception queues publish their depth, the age of the oldest item, arrival and clearance rates, and SLA breaches.

    Priority: MUST_HAVE ---

    Requirement

    The human reconciliation, adjudication and write-back exception queues publish their depth, the age of the oldest item, arrival and clearance rates, and SLA breaches. Reconciliation and drift metrics also have a threshold and a named recipient. These cover event capture completeness, financial control totals across systems, drift sampling and the decommission burn-down.

    Rationale

    A reconciliation queue with no age metric is an unbounded backlog (TA §C.17.1).

    Parameters

  • NFR-M-004 Must

    A breach of any architecture principle can be detected

    For each of N01–N21, the detection mechanism is named.

    Priority: MUST_HAVE ---

    Requirement

    For each of N01–N21, the detection mechanism is named. Where it can be expressed as a lint rule, fitness function or schema-registry compatibility check, it runs as one in CI. Manual checks that could be automated are listed with the reason they are not.

    Measurement Method

    A detection register reviewed at each gate, read alongside the volume of findings.

    Rationale

    A control that nobody can see being broken is not a control (PRIN N18).

    Parameters

  • NFR-M-005 Must

    One authoritative home for each rule

    To understand how any business rule works, a person needs to look in one system.

    Priority: MUST_HAVE ---

    Requirement

    To understand how any business rule works, a person needs to look in one system. Any other copy of the rule is generated from that one, and the generation is shown.

    Measurement Method

    The N04 test applied to a sample of rules at each gate, including the five entitlement-deciding spreadsheets once they are acquired.

    Rationale

    Rules live in six places today (RULES §5). Logic spread across layers cannot be understood or changed with confidence.

    Parameters

  • NFR-M-006 Must

    Operations, on-call and support

    Tier-1 components (Open Host Service, layer, backbone, determination service, payment chokepoint) have 24×7 on-call cover.

    Priority: MUST_HAVE ---

    Requirement

    Tier-1 components (Open Host Service, layer, backbone, determination service, payment chokepoint) have 24×7 on-call cover. Each rotation has at least six people, and escalation clocks are published. The team that builds a component stays on call until a handover gate: tested runbooks and three months of clean operation. Support runs through the ministry service desk and an application support tier. Staff reach engineering only through tier two. Runbooks cover deployment, rollback, restore, fallback modes and incident response.

    Rationale

    In every documented failure in the comparison record, the operations model was written during the incident (TA §E.8).

    Parameters

    N16 [PROPOSED]

  • NFR-M-007 Must

    Release calendar set by the financial calendar

    Deployment blackout windows for payment services follow the corporate financial calendar.

    Priority: MUST_HAVE ---

    Requirement

    Deployment blackout windows for payment services follow the corporate financial calendar. The child protection reporting line has its own change window and rollback rehearsal.

    Amended v1.5 (TA §E.7):

    • Month-end blackout. No production change is made to any payment-path component, any determination component or the anti-corruption layer from three business days before the issuance run until reconciliation is signed off. The only exception is one signed by a named executive, and the exception is published TA-C46.
    • Freeze periods are published once a year. They cover month-ends, the fiscal year-end and the seasonal peak. An emergency change follows a separate, audited path.

    Measurement Method

    The change record for each blackout and freeze, checked against the published calendar; every exception has its signature.

    Rationale

    The financial calendar governs the release calendar, and the programme cannot choose otherwise (TA §C.6.6).

    Parameters

Portability and Interoperability 8

  • NFR-I-001 Must

    The contract outlasts whatever implements it

    Published contracts use the words of policy and of the ministry's work, whatever product sits behind them.

    Priority: MUST_HAVE ---

    Requirement

    Published contracts use the words of policy and of the ministry's work, whatever product sits behind them. No legacy row identifier, code list or term reaches a published endpoint. The anti-corruption layer is a private, temporary implementation set up to be retired.

    Measurement Method

    The excision test: remove the product and count the contract changes, with a target of zero. Also a demonstrated swap of the implementation with no change for any consumer.

    Rationale

    Once a partner stores one legacy identifier, the contract is tied to the platform it was meant to outlive (TA §A.7 risk 5; decision D1).

    Parameters

  • NFR-I-002 Must

    Only evidence and determinations cross between contexts, and no model is shared

    Contexts exchange only evidence and determinations.

    Priority: MUST_HAVE ---

    Requirement

    Contexts exchange only evidence and determinations. They never exchange rows, table projections, internal identifiers or result sets. No context reads another's tables or depends on a type it does not own. A value type joins the shared published language only by a recorded decision.

    Measurement Method

    Payload inspection and dependency analysis in CI.

    Rationale

    A shared model tends to come back as a shared schema, not as a shared database (PRIN N03).

    Parameters

  • NFR-I-003 Must

    Schema compatibility and contract testing

    Event and API schemas follow a published compatibility policy for each surface, enforced by the schema registry.

    Priority: MUST_HAVE ---

    Requirement

    Event and API schemas follow a published compatibility policy for each surface, enforced by the schema registry. Consumer-driven contract tests run in CI. Versions, deprecations and retirement dates are published.

    Amended 2026-09-30 (drift B10; TA §B.5.4): the policy has three compatibility classes, enforced at publish:

    ClassApplies toPolicy
    Domain eventsEvidence, determination, case, payment, overpayment, appeal and identity eventsFull transitive compatibility: backward and forward compatible against every prior version
    Reference-data eventsRate tables, program codes, value lists, reason codesBackward compatibility, plus a stability contract: a published code is never reused for a different meaning, and retirement is a state transition, not a deletion
    Integration and telemetry eventsAnti-corruption layer signals, observability, the platform capabilities' eventsBackward compatibility, no replay guarantee; no projection may be built on them

    Coded values. A coded-value field in an event schema is either a string validated at the edge against its reference-data master, or an enumeration with a mandatory default symbol (UNKNOWN) to which unrecognised values resolve. A schema registering a closed enumeration without a default is rejected at publish. The closed-enumeration rule binds API contracts and command validation, not event wire schemas. A consumer that resolves a value to UNKNOWN preserves the raw value and routes the record to its exception path where the field is material.

    Upcasters are complementary, not an alternative: every upcaster is a versioned artefact exercised by a replay test against archived events in the owning context's pipeline.

    Measurement Method

    The registry rejects a domain-event schema that is not fully transitively compatible, and a closed enumeration without a default. A replay test from origin runs in each owning context's pipeline.

    Rationale

    Breaking replay of an old event is a data-loss incident (TA §B.5.4, §D.1). A "backward compatible" change that breaks replay of a five-year-old event is exactly that, which is why domain events carry the stricter class.

    Parameters

  • NFR-I-004 Must

    Delivery rules and safe retries

    Events are delivered at least once through a transactional outbox.

    Priority: MUST_HAVE ---

    Requirement

    Events are delivered at least once through a transactional outbox. Every consumer is idempotent, so a repeated message has no extra effect. Ordering guarantees are stated for each stream.

    Amended 2026-09-30 (drift B10; TA §B.5.2, §B.5.3): every consumer of a domain event meets this contract, checked at release:

    • The partition key is aggregate_id. The broker orders only within a partition, so per-aggregate ordering needs per-aggregate partitioning. Repartitioning is a breaking change, governed like a schema break: announced, versioned, with a migration path and a sunset period.
    • event_id governs deduplication; aggregate_version governs ordering. Apply is idempotent on event_id, through a naturally idempotent write or a processed-id store whose time-to-live is no shorter than the maximum replay window.
    • aggregate_version is used for gap detection and bounded buffering, never for rejection. A consumer that sees a version higher than expected buffers up to a bound and waits for the gap to fill. On timeout it escalates to a named recovery path (replay from offset, or a monitored reconciliation queue with a named owner), never to a dead-letter queue.
    • Replay epoch. A replay from origin is published under an incremented replay_epoch. A consumer that sees a new epoch rebuilds its projection from empty instead of applying incrementally.
    • The relay reads the outbox in commit order (log-based capture, or a sequence assigned at commit). A polling relay over an identity column is not acceptable where events affect entitlement, payment or debt.

    Measurement Method

    Conformance tests at release: duplicate, reordered and gapped deliveries per aggregate; a full replay under a new epoch; concurrent-commit tests of the relay.

    Rationale

    At-least-once delivery on a payment path is safe only if idempotency is designed in (TA §C.6.8). Rejecting an out-of-order event discards data the broker will not re-deliver and turns a normal reordering into permanent divergence (TA §B.5.2).

    Parameters

  • NFR-I-005 Must

    Ministry-owned formats and portable records

    Decision records, evidence and documents are held in formats the ministry owns.

    Priority: MUST_HAVE ---

    Requirement

    Decision records, evidence and documents are held in formats the ministry owns. The ministry can export them without a vendor's tools, including a transfer package with its offline verifier.

    Export Formats

    Open, documented formats for each record class, with published schemas.

    Rationale

    Replay must still work after every component that produced the decision has been retired (PRIN N08).

    Parameters

  • NFR-I-006 Must

    Open standards, and buying what is generic

    The system uses open standards throughout, and prefers open source for generic needs.

    Priority: MUST_HAVE ---

    Requirement

    The system uses open standards throughout, and prefers open source for generic needs. It buys, adopts or reuses workflow, notification, identity, secrets, policy evaluation, scheduling, document storage, search and print-and-mail. Any decision to build one of these must name the statutory, policy or program requirement that no commodity option meets. Someone other than the component's owner assesses the claim TA-C41. Each selection records the open alternative that was rejected.

    Before procurement, custom build is evaluated against commercial and reusable case management platforms for the platform as a whole, and that evaluation is assessed independently.

    Rationale

    The platform-level build-or-buy question is the largest open question in the architecture, and leaving it open breaks the architecture's own rules PRIN-C9.

    Parameters

  • NFR-I-007 Should

    API styles

    REST for commands, resources and bulk operations.

    Priority: SHOULD_HAVE ---

    Requirement

    REST for commands, resources and bulk operations. GraphQL for combined reads during transactions, with persisted operations mandatory. Access control, audit, versioning and idempotency are applied the same way at the Open Host Service.

    Rationale

    This is the recommendation of decision D2. Shared caching is not possible for responses about individual people (TA §C.1.4).

    Parameters

  • NFR-I-008 Must

    Five program-family case contexts that share protocols, not a case model

    Added 2026-09-30 (drift B8;

    Priority: MUST_HAVE ---

    Description

    Added 2026-09-30 (drift B8; ADR-001).

    Requirement

    Case delivery is five domain contexts, one per program family: Case: employment assistance · Case: persons with disabilities · Case: child care subsidy · Case: employment services · Case: child protection. Each has its own persistence, topics, published language, lifecycle and owning team. They share protocols, not a case model: each consumes identity events, records evidence through Evidence & Verification, requests determinations from Eligibility & Entitlement (Determination), requests services, instructs Financial Components, raises work in Work Management, and emits correspondence triggers to Notices & Correspondence. No type, table or lifecycle is shared between them. "Case & Service Delivery" names the family only; it is never the owner of a requirement, obligation, aggregate or event. The owner is always one case context, or "all case contexts (shared protocol)" where an obligation is common to all five.

    Measurement Method

    Dependency analysis in CI shows no case context depending on another's types or store. The traceability file names a specific case context, or the shared protocol, on every case-delivery row. Each case context can be released on its own.

    Rationale

    A child protection investigation and a child care subsidy renewal share no meaningful state model. A shared case model is the meta-model the predecessor programme could not change; some duplicated case plumbing is far cheaper (TA §B.2.1). Employment assistance and persons-with-disabilities assistance are governed by one policy manual, but they are still two contexts.

    Relates To

    Parameters