The Book · Chapter 13

Sovereignty in Specification-Driven Enterprise Architecture

For a long time, enterprise discussions about sovereignty were dominated by data location. The usual question was whether data remained in a country, a region, a certified environment, or a provider marketed as sovereign. That question still matters, but it no longer defines the whole problem. A modern enterprise can keep data in the right region and still lose effective control over meaning, access, interpretation, execution, dependency, portability, and evidence.

A specification-driven enterprise cannot treat sovereignty as a property of hosting alone. It must treat sovereignty as the capacity to decide, prove, and preserve control over digital action. This includes control over where data resides, who can access it, which purposes justify access, which agents can reason over it, which tools can be called, which derived context can move, which provider dependencies are acceptable, which cryptographic controls remain under enterprise authority, and which evidence must exist after execution.

Where data residency asks where information is stored (a question answered by inspecting infrastructure configuration), sovereign architecture asks who retains meaningful control. That control spans the lifecycle of data, models, agents, policies, keys, decisions, interfaces, evidence, and exit paths. Establishing it requires a chain of architectural objects that links intent, policy, decision, specification, execution, and feedback.

What the chapter covers

12 sections, in order.

  1. 13.1 Why traditional EA cannot govern sovereignty at execution speed
  2. 13.2 Sovereignty as a codified architecture domain
  3. 13.3 Federated data requires centralized meaning
  4. 13.4 Inter-agent communication becomes a sovereignty boundary
  5. 13.5 A reference Sovereignty Specification
  6. 13.6 ACME Pharma: sovereign architecture for a precision-medicine collaboration
  7. 13.7 The operating model for sovereign architecture
  8. 13.8 Provider sovereignty and the exit problem
  9. 13.9 Sovereignty changes the architecture assets
  10. 13.10 Risks, limits, and trade-offs
  11. 13.11 Conclusion: sovereignty as executable architecture
  12. 13.12 Sources

Figures, tables and listings

3 code listings

Reproduced in full, in the order they appear in the published chapter. The reasoning that connects them is in the book.

apiVersion: ea.codex/v1
kind: SovereigntySpecification
metadata:
  id: SOV-REF-001
  name: regulated-agentic-data-federation
  domain: enterprise-sovereignty
  status: approved-with-controls
  version: "1.0"
  owners:
    enterpriseArchitect: ea.sovereignty@example
    dataProtectionOfficer: dpo@example
    chiefInformationSecurityOfficer: ciso@example
spec:
  intent:
    objectiveRef: INT-SOV-001
    statement: >
      Preserve enterprise control over meaning, location, access,
      execution, evidence, and exit for regulated and agentic workloads.
  appliesTo:
    capabilityScopes:
      - regulated-customer-operations
      - clinical-research-collaboration
      - critical-enterprise-operations
    technologyScopes:
      - federated-data-products
      - ai-agent-runtime
      - inter-agent-communication
      - cloud-data-processing-services
      - enterprise-knowledge-retrieval
  sovereigntyObjectives:
    controlOfMeaning:
      required: true
      codexObjects:
        - BusinessObject
        - DataProductContract
        - AgentContract
        - InteractionContract
    controlOfDataLocation:
      required: true
      defaultPolicy: region-bound-processing
    controlOfAccess:
      required: true
      enforcementPattern: identity-and-purpose-bound-access
    controlOfExecution:
      required: true
      enforcementPattern: graph-bound-agent-execution
    controlOfEvidence:
      required: true
      evidenceStore: sovereign-evidence-ledger
    controlOfExit:
      required: true
      portabilityScope:
        - specifications
        - policies
        - evidence
        - data-product-contracts
        - agent-contracts
        - interaction-contracts
  federatedData:
    defaultPattern: data-product-contract
    allowedAccessPatterns:
      - governed-api
      - federated-query
      - semantic-retrieval
      - clean-room-analysis
    prohibitedPatterns:
      - unrestricted-agent-access
      - unmanaged-bulk-export
      - unapproved-derived-context-transfer
    requiredControls:
      - purpose-limitation
      - data-minimization
      - lineage-capture
      - semantic-conformance-check
      - regional-routing
  agenticExecution:
    defaultAutonomyLevel: human-reviewed
    prohibitedCapabilities:
      - unilateral-regulated-decision
      - unapproved-cross-border-delegation
      - persistent-sensitive-memory
      - direct-secret-exposure-to-model
    requiredAgentObjects:
      - AgentContract
      - ToolAccessPolicy
      - MemoryPolicy
      - ObservabilityProfile
  interAgentCommunication:
    protocolClass: agent-to-agent
    allowedOnlyThrough:
      - approved-interaction-contract
      - signed-agent-identity
      - policy-check-before-dispatch
    requiredMessageControls:
      - purpose-bound-message
      - data-minimization
      - jurisdiction-aware-routing
      - delegation-evidence-record
    humanEscalationRequiredWhen:
      - confidence-below-threshold
      - regulated-decision-impact
      - cross-domain-policy-conflict
      - requested-context-exceeds-contract
  cryptographicControl:
    requiredPattern: customer-controlled-key-authority
    providerAccess:
      default: prohibited
      exceptionRequiresDecisionRef: true
    breakGlass:
      allowed: true
      requiredEvidence:
        - incident-reference
        - approval-record
        - time-bound-access-log
        - post-event-review
  providerPortability:
    targetState: portable-control-plane
    forbiddenDependency:
      - policy-only-in-provider-console
      - evidence-only-in-provider-logs
      - agent-definition-without-exportable-contract
    requiredExitArtifacts:
      - codex-export
      - policy-bundle-export
      - evidence-schema-export
      - data-product-contract-export
      - agent-contract-export
  validation:
    deterministicRules:
      engine: opa-rego
      rulePackages:
        - sovereignty.data_residency
        - sovereignty.agent_delegation
        - sovereignty.tool_access
        - sovereignty.provider_portability
    interpretiveEdges:
      evaluator: llm-edge-evaluation
      prompts:
        - purpose-limitation-assessment
        - semantic-disclosure-risk-assessment
        - derived-context-transfer-assessment
    scenarioPacks:
      - cross-border-derived-summary
      - unauthorized-agent-delegation
      - unapproved-tool-call
      - provider-exit-readiness
      - sensitive-memory-retention
    convergenceCriteria:
      criticalPolicyFailures: 0
      unresolvedHighRiskFindings: 0
      evidenceCompleteness: required
      humanReviewForRegulatedImpact: required

Figure 13.1: Reference SovereigntySpecification.

apiVersion: ea.codex/v1
kind: SovereigntySpecification
metadata:
  id: ACP-SOV-001
  name: acme-precision-medicine-collaboration
  domain: clinical-research-sovereignty
  status: approved-with-controls
  version: "1.0"
  owners:
    enterpriseArchitect: ea.clinical@acmepharma.eu
    dataProtectionOfficer: dpo.eu@acmepharma.eu
    chiefInformationSecurityOfficer: ciso@acmepharma.eu
    clinicalDataLead: cdl.precision@acmepharma.eu
spec:
  intent:
    objectiveRef: INT-ACP-PRECISION-MED-001
    statement: >
      Enable a federated precision-medicine collaboration with three
      academic medical centres in EU and Japan while preserving
      EU jurisdiction over patient-identifiable genomic data,
      controlling derived-context transfer across the partner
      boundary, and protecting the enterprise's ability to
      substitute its cloud AI provider within twelve months.
    relatedDecisions:
      - ACP-ARC-012      # EU runtime pattern for regulated workloads
      - DD-ACME-052      # AI assistance limited to retrieval-only or constrained workflow
      - DD-REG-042       # Regulated paved-road runtime and delivery pattern
  appliesTo:
    capabilityScopes:
      - clinical-research-collaboration
      - genomic-data-federation
      - investigator-collaboration
    dataProductRefs:
      - acp-genomic-cohort-eu
      - acp-clinical-trial-evidence
      - acp-real-world-evidence-eu
    agentContractRefs:
      - precision-medicine-research-assistant
    interactionContractRefs:
      - acp-amc-cohort-exchange-eu
      - acp-amc-cohort-exchange-jp
  sovereigntyObjectives:
    controlOfMeaning:
      required: true
      codexObjects:
        - BusinessObject:GenomicCohort
        - BusinessObject:PatientConsent
        - DataProductContract:acp-genomic-cohort-eu
        - AgentContract:precision-medicine-research-assistant
        - InteractionContract:acp-amc-cohort-exchange-eu
    controlOfDataLocation:
      required: true
      defaultPolicy: eu-bound-processing
      jurisdictionPolicies:
        - jurisdiction: EU
          allowedRegions: [eu-west-1, eu-central-1]
          requiredControls: [eu-data-residency, gdpr-consent-pack]
        - jurisdiction: JP
          accessPattern: federated-query-only
          forbiddenAction: bulk-export
    controlOfAccess:
      required: true
      enforcementPattern: identity-and-purpose-bound-access
      purposeReferenceRef: INT-ACP-PRECISION-MED-001
    controlOfExecution:
      required: true
      enforcementPattern: graph-bound-agent-execution
      agentRuntimeBoundary: eu-tenant
    controlOfEvidence:
      required: true
      evidenceStore: acp-sovereign-evidence-ledger
      retention: 25-years
    controlOfExit:
      required: true
      providerSubstitutionTarget: 12-months
      portabilityScope:
        - specifications
        - policies
        - evidence
        - data-product-contracts
        - agent-contracts
        - interaction-contracts
  federatedData:
    defaultPattern: data-product-contract
    allowedAccessPatterns:
      - governed-api
      - federated-query
      - clean-room-analysis
    prohibitedPatterns:
      - unrestricted-agent-access
      - unmanaged-bulk-export
      - unapproved-derived-context-transfer
    requiredControls:
      - purpose-limitation
      - data-minimization
      - lineage-capture
      - semantic-conformance-check
      - regional-routing
      - patient-consent-check
  agenticExecution:
    defaultAutonomyLevel: human-reviewed
    delegationLevel: L1                # Chapter 4 EA Council classification
    prohibitedCapabilities:
      - unilateral-regulated-decision
      - unapproved-cross-border-delegation
      - persistent-sensitive-memory
      - direct-secret-exposure-to-model
      - autonomous-cohort-modification
    requiredAgentObjects:
      - AgentContract:precision-medicine-research-assistant
      - ToolAccessPolicy:precision-medicine-tools
      - MemoryPolicy:no-patient-context-retention
      - ObservabilityProfile:clinical-research-trace
  interAgentCommunication:
    protocolClass: agent-to-agent
    allowedOnlyThrough:
      - approved-interaction-contract
      - signed-agent-identity
      - policy-check-before-dispatch
    requiredMessageControls:
      - purpose-bound-message
      - data-minimization
      - jurisdiction-aware-routing
      - delegation-evidence-record
      - patient-identifier-redaction
    humanEscalationRequiredWhen:
      - confidence-below-threshold
      - regulated-decision-impact
      - cross-domain-policy-conflict
      - requested-context-exceeds-contract
      - genomic-disclosure-risk-detected
  cryptographicControl:
    requiredPattern: customer-controlled-key-authority
    keyAuthorityLocation: eu
    providerAccess:
      default: prohibited
      exceptionRequiresDecisionRef: true
    breakGlass:
      allowed: true
      requiredEvidence:
        - incident-reference
        - dpo-approval-record
        - time-bound-access-log
        - post-event-review
  providerPortability:
    targetState: portable-control-plane
    substitutionWindow: 12-months
    forbiddenDependency:
      - policy-only-in-provider-console
      - evidence-only-in-provider-logs
      - agent-definition-without-exportable-contract
    requiredExitArtifacts:
      - codex-export
      - policy-bundle-export
      - evidence-schema-export
      - data-product-contract-export
      - agent-contract-export
      - interaction-contract-export
  validation:
    deterministicRules:
      engine: opa-rego
      rulePackages:
        - acp.sovereignty.data_residency
        - acp.sovereignty.agent_delegation
        - acp.sovereignty.tool_access
        - acp.sovereignty.provider_portability
        - acp.sovereignty.cohort_purpose
    interpretiveEdges:
      evaluator: llm-edge-evaluation
      prompts:
        - acp-purpose-limitation-assessment
        - acp-semantic-disclosure-risk-assessment
        - acp-derived-context-transfer-assessment
    scenarioPacks:
      - acp-cross-border-derived-summary
      - acp-unauthorized-amc-delegation
      - acp-unapproved-tool-call
      - acp-provider-exit-readiness
      - acp-genomic-memory-retention
    convergenceCriteria:
      criticalPolicyFailures: 0
      unresolvedHighRiskFindings: 0
      evidenceCompleteness: required
      humanReviewForRegulatedImpact: required

Figure 13.2: SovereigntySpecification for the ACME Pharma precision-medicine collaboration.

package acp.sovereignty.data_residency
# Patient-identifiable genomic data must remain in EU regions.
deny[msg] {
  input.data.classification == "patient-identifiable-genomic"
  not startswith(input.workload.region, "eu-")
  msg := sprintf(
    "Workload %s processes patient-identifiable genomic data in non-EU region %s.",
    [input.workload.id, input.workload.region]
  )
}
# A JP-origin partner request cannot trigger bulk export of EU-bound cohorts.
deny[msg] {
  input.request.origin_jurisdiction == "JP"
  input.data.product_ref == "acp-genomic-cohort-eu"
  input.request.access_pattern == "bulk-export"
  msg := sprintf(
    "JP-origin request %s attempts bulk-export of EU-bound cohort %s. Use federated-query.",
    [input.request.id, input.data.product_ref]
  )
}
# Inter-agent delegation across the AMC boundary requires an
# approved interaction contract reference.
deny[msg] {
  input.delegation.target_party == "academic-medical-centre"
  not input.delegation.interaction_contract_ref
  msg := sprintf(
    "Delegation %s to AMC has no interaction contract reference.",
    [input.delegation.id]
  )
}

Figure 13.3: Rego package acp.sovereignty.data_residency enforcing two cohort-handling rules and one delegation rule.

The rest of this chapter

The published chapter runs the argument through all 12 sections above. This page reproduces its structure and every exhibit; the analysis is in the book.