Internal Developer Platform  ·  View 14 of 21  ·  Runtime

Self-Service Provisioning

Declared intent, admitted against quota, reconciled towards — never called imperatively.

Editable source SVG draw.io All views
Declare Resource Catalogue 40 kinds · named sizes Infrastructure Intent in the team repo Admit Quota Check per team · per env Budget Check Classification Check region · data class Plan Module Registry versioned Terraform Plan and Lock idempotent Apply Runner Pool workload identity Azure Resource Manager Attribute Owner and Cost Tags applied at creation Workload Identity Key Vault Path granted, not copied Converge State Store RPO 0 Drift Detector ≤ 5 min p95 Orphan Reclaimer notice · grace · reclaim re-plan records Internal Developer Platform — Self-Service Provisioning by Reconciliation Application we own External / third party Decision point Security / platform Data store event / async synchronous A partially failed apply is resumed from the same declaration rather than reconstructed, which is the property an imperative portal cannot offer. v 1.0 · owner Platform Architecture · date 2026-09

Decisions

  • Quota, budget and data classification are checked at admission, before any resource exists, so a rejection is cheap and explicable (ADR-04).
  • Owner, cost centre, tier and classification are applied at creation as enforced properties. Nothing acquires an owner afterwards (ADR-11).
  • De-provisioning and orphan reclamation are first-class paths, not scripts someone runs — an unowned resource is quarantined, reported and reclaimed on a schedule (ADR-10).

Assumptions

  • Roughly 40 provisionable resource kinds, each with named sizes and a defensible default; 2,400 reconciliations per day (stated assumptions).
  • Provisioning of the full golden-path resource set ≤ 12 min p95.

Why not imperative

  • A portal that calls Azure directly turns every partial failure into a state-reconstruction problem and every console edit into invisible drift.
  • The cost is latency and an indirection engineers must understand when it stalls — which is the trade ADR-02 accepts explicitly.