Skip to main content

Required Architecture

This document specifies the required logical architecture for PTI-compatible implementations. Physical deployment may vary; logical boundaries MUST NOT be bypassed.

Layer model​

                    ┌──────────────────────┐
│ Consumer clients │
└──────────┬───────────┘
│
┌──────────────────────────────▼──────────────────────────────┐
│ LOOKUP PLANE (RFC-004, RFC-012) │
│ Search · Generate · Verify · Report cache │
└──────────────────────────────┬──────────────────────────────┘
│
┌──────────────────────────────▼──────────────────────────────┐
│ PROCESSING PLANE (RFC-005) │
│ Scoring · Signal derivation · Lens refresh · Outcomes │
└──────────────────────────────┬──────────────────────────────┘
│
┌──────────────────────────────▼──────────────────────────────┐
│ INGEST PLANE (RFC-003) │
│ API · Webhook · CSV · Connector adapters │
└──────────────────────────────┬──────────────────────────────┘
│
┌──────────────────────────────▼──────────────────────────────┐
│ IDENTITY PLANE (RFC-011) │
│ PTI-ID · Entity binding · Match · Review queue │
└──────────────────────────────┬──────────────────────────────┘
│
┌──────────────────────────────▼──────────────────────────────┐
│ CONTROL PLANE (RFC-007, RFC-008, RFC-009) │
│ Policy · Consent · Audit · Auth · Privacy · Metering │
└──────────────────────────────┬──────────────────────────────┘
│
┌──────────▼───────────┐
│ Graph + event store │
└──────────────────────┘

Mandatory service boundaries​

ServiceResponsibilityMUST NOT
Ingest gatewayAuth, validation, idempotencyCompute scores
Identity resolverPTI-ID assignmentExpose bulk export API
Graph writerPersist nodes/edgesSkip context checks
Scoring workerDerive signals/outcomesAccept consumer requests
Lookup APIReports + evidenceIngest events
Policy engineEntitlements, consent, purposeStore long-term PII unnecessarily
Audit loggerAppend-only security/privacy eventsAllow tenant cross-read
Signing serviceManifest signaturesHold application session state

Services MAY co-reside in one process in Core deployments if boundaries enforced by module isolation and separate credentials.

Data stores​

StoreContentsRequirements
Event storeImmutable trust eventsPer-tenant partition
Graph storeNodes, edges, metadataPoint-in-time queries
Outcome cacheMaterialized scoresKeyed by pti_id + context
Report storeImmutable report + manifestContent-addressed hash
Consent storeConsent recordsFast withdraw propagation
Audit storeLookup and admin eventsWORM or append-only
Credential storeHashed API keys, JWKSEncrypted at rest

Edge deployments MAY use embedded databases for local partition with sync to hub stores.

Network zones​

ZoneExposureComponents
PublicInternetLookup API, webhook receivers, verify endpoint
PartnerAllowlistedHigh-volume ingest, CSV upload
InternalPrivateWorkers, graph, scoring
ControlRestrictedPolicy admin, identity review, signing

All zones MUST use TLS for HTTP traffic.

Trust lifecycle wiring​

  1. Ingest gateway → policy (context enabled?) → identity (resolve entity) → event store → graph writer
  2. Graph writer → async queue → scoring worker → outcome cache
  3. Lookup API → policy (entitlement, consent) → outcome cache + graph explain → evidence builder → signing service → report store

Federation extension (optional)​

┌─────────────┐     mTLS      ┌─────────────┐
│ Operator A │◄────────────►│ Operator B │
│ exchange gw │ packages │ exchange gw │
└─────────────┘ └─────────────┘

Exchange gateway MUST verify signatures before merging foreign packages into lookup responses.

High availability​

ProfileLookup availabilityRPO / RTO guidance
CoreBest effortRPO 24h, RTO 8h
Enterprise99.5%RPO 1h, RTO 2h
Government99.9%RPO 15m, RTO 1h

Observability​

Implementations SHOULD emit:

  • Ingest acceptance rate by context
  • Scoring lag (ingested_at → outcome refresh)
  • Lookup latency p95 by tier
  • Evidence verification success rate
  • Consent withdraw propagation time

Anti-patterns (non-conformant)​

Anti-patternWhy it fails
Monolith consumer ingests via lookup APIViolates RFC-001 role separation
Scores without graph edgesCannot produce RFC-012 evidence
Shared DB row without tenant_idCross-tenant leakage risk
Unsigned PDF reportsNo verification hook
Global context-off flag only in UIMust enforce in ingest gateway