AI Code Completion Service  ·  View 08 of 21  ·  Structure

Platform Components

Container view: what is stateless, what is session-affine, and what is strongly consistent.

Editable source SVG draw.io All views
Developer machine Editor process Completion plugin debounce, cancel Context gatherer tabs, recent edits Redactor ignore rules Azure — serving region Edge (Front Door + API gateway) Front Door anycast, WAF Seat authoriser Entra token Quota shaper Deadline stamper Request plane (Container Apps, stateless) Prompt assembler FIM, budgeted Retrieval service BM25 + symbols Affinity router Post-processor trim, dedup Safety filters secret, licence Inference plane (AKS GPU node pools, session affine) Batch scheduler continuous batching Fast model server single-line Multi-line server escalated KV cache manager 3 tiers Measurement plane Event Hubs two streams Scrubber Data Explorer aggregates Quality service arms, gating Control plane (regional read, global write) Policy & seats Azure SQL Policy & affinity cache Redis Model registry ACR, by digest Flags & kill switch Key Vault / HSM Microsoft Entra ID Source hosting repo + ACLs Azure Monitor Blob Storage artifacts, raw suggest deadline ACL check session key events promote weights Platform Components (C4 L2) Application we own Security / platform Interface / broker Data store Queue / topic External / third party synchronous event / async batch Omitted for legibility: the per-tier Monitor exporters, private endpoints, the Entra token path and the affinity-map write, all drawn on views 09, 11, 15, 17, 18 and 20. v 1.0 · owner Developer Experience Architecture · date 2026-10

Decisions

  • The request plane is stateless on Container Apps and scales on ordinary signals; the inference plane is session-affine on AKS GPU node pools and scales on admission rejections and queue-wait at percentile.
  • Two model servers, not one: a fast single-line model and an escalated multi-line model, so the common case does not pay for the rare one.
  • Safety filters are their own component with their own budget, so filter latency is attributable and a filter outage is a declared fail-closed rather than a timeout.

Deliberate omissions

  • Per-tier Monitor exporters, private endpoints, the Entra token path and the affinity-map write are omitted here and drawn on views 09, 11, 15, 17, 18 and 20.
  • The admin console is a caller, not a component — see view 09.

Risks

  • Session affinity makes the inference plane the only tier where scale-in is correctness-adjacent: removing a replica evicts live sessions, so autoscaling and node upgrades need a drain protocol rather than a termination grace period.